单片机/MCUwilliam hill官网
直播中

芦苇鱼

12年用户 116经验值
擅长:可编程逻辑 嵌入式技术 制造/封装 处理器/DSP 控制/MCU
私信 关注
[问答]

求助 义隆单片机

最近在学习使用义隆单片机  可是在用euide编译的时候总出现
Cpp: Input buffer overflow!!!
请各位大神帮助,有什么好的开发经验,可以提一下  ,谢谢!附程序
#include"EM78P153S.H"
#define DISI()_asm{disi}
#define WDTC()_asm{wdtc}
#define NOP()_asm{nop}
#define ENI()_asm{eni}
#define SLEP()_asm{slep}
#define uchar unsigned char
#define Trig_s R65//相当于51中的位定义
#define Trig_r R64
#define ccc  R63
unsigned int COUNTER;
unsigned int temp;
bit Trig_q;
bit L1;
bit flag;
bit flag2;
void Init()
{
P6CR=0x38; //PORT6设为输出
P6CR=0x38; //PORT6设为输出
R60 = 0;
R61 = 0;
R62 = 0;
Trig_q = 0;
COUNTER=0;
flag = 0;
}
void main()
{
WDTC();
DISI();
//ODCR = 0x30; //漏极开路控制寄存器
WDTCR=0; //禁止WDT
_asm{
mov a,@0x04
contw //TCC分频比设为1:32
}
TCC=6; //timer=1/4*(256-6)*32*2=4ms
ISR=0; //清TCC中断标志位
IMR=0x01; //开定时器中断
ENI();
Init();
while(1)
{
Trig_q = (!Trig_s)||(Trig_r&&Trig_q);//RS触发器的方程
R60 = Trig_q;
L1 = Trig_q&&ccc;//与另外一个变量进行逻辑与运算
if(L1 == 1) //如果运算结果为1
{
R61 = 1;//输出高电平
R62 = 1; //输出高电平
temp = 0;
}
else
{
if(flag == 1 )//30秒标志位
{
flag = 0;
R61 = 0;
}
if(flag2 == 1)//45秒标志位
{
flag2 = 0;
R62 = 0;
}
}
}
}
void _intcall interrupt(void) @ int//定时器中断服务程序
{
// Write your code (inline assembly or C) here
if(TCIF==1)
{
ISR&=0XFE; //清TCC中断标志位
TCC=6; //TCC赋初值
COUNTER++;
if(COUNTER>=25)
{
COUNTER=0;
temp++;
if(temp >=30)
{
//temp = 0;
flag = 1;
}
if(temp >=45)
{
temp = 0;
flag2 = 1;
}
}
}
}
void _intcall interrupt_l(void) @ 0x08:low_int 0
{}


回帖(2)

btl399618

2014-7-24 15:32:26

最佳答案

义隆用C,以前都是用汇编 的。
举报

芦苇鱼

2014-8-2 12:48:55
引用: btl399618 发表于 2014-7-25 16:46
义隆用C,以前都是用汇编 的。

对  用汇编好点   可是我汇编没有C用的好  所以没办法
举报

更多回帖

发帖
×
20
完善资料,
赚取积分