这个问题就需要具体分析了:
再说你怎么知道编译器就不是使用的最佳方案呢?
对于单单这一句来说,可能我们的方案是好的。但是如果结合怎个程序就不一定了。比如下面的句子:
reg_……
你没有硬件去抖动吧?
对于M16C来说,按键中断(KI或者是INT)都没有数字滤波器(相对于R8C来说)。所以第一个边沿触发中断后,当前的ir位被清除后,你的程序进入中断了,但是……
如果你一定要在2句内搞定,可以如下翻译:
sub.w tm0_temp, reg_temp ;reg_temp -= tm0_temp;
neg.w reg_tem……
因为你理解反了:
SUB.W 04CH, 041EH 等价于 reg_temp -= tm0_temp。而不是reg_temp = tm0_tem……
你的程序是没有问题,我想硬件问题的可能性很大。
你的上种情况分析如下:
1 连接后值接近于Vref
如果只有MCU工作后才发生,那么一般2种可能:
……
你说的不错,部分错误标志(总错误标志和溢出错误标志)的确只能通过初始化串口(SiMR = 0x00或者RE_UiC1 = 0)来清除。但是格式错误和校验错误通过读高8位就行了。
……
每次用16位变量读取UiRB。只有这样才能清除高位的标志。
下面是读数的中断程序:
#pragma interrupt UART0Recv
VOID &……
补充一点,R8C的上拉设定只有在该引脚设定为输入的时候才有效。
千万不要指望,设定上拉,然后输出就内输出H。……
C:\Program Files\Renesas\Hew\Tools\Renesas\nc30wa\v543r00\inc30
C:\Program Files\Renesas\……
我一般自己写函数,函数如下:
由于函数的变量是由寄存器传递的,所以如果要得到原始的寄存器值,就不能使用带参数的函数。只能使用全局变量。
UINT16 ……