没记清楚运算符的优先级,第一次写出了这行代码。
cpld_led_reg = cpld_led_reg&0x00ff + reg_val<<8;
出现了bug,然后改写成
cpld_led_reg = (cpld_led_reg&0x00ff) + reg_val<<8;
又出现了bug,然后改写成
cpld_led_reg = (cpld_led_reg&0x00ff) + (reg_val<<8);
解决了。
决定了,以后凡是用到了两种以及两种以上的运算符就用括号给括起来。一定要记住了…(⊙_⊙;)…