[AVR单片机] if语句也会被优化?还是什么其他原因

[复制链接]
1092|1
 楼主| 1986zhaoxl 发表于 2015-8-25 09:59 | 显示全部楼层 |阅读模式
  1. unsigned char c;
  2.     wdt_disable();
  3.     cli();
  4.     usart0_init();
  5.     sei();
  6.     while(1)
  7.     {
  8.         if((&RTbuf_UART0) -> R_count > 0) {
  9.             Rbuf_getchar(&c, &RTbuf_UART0);
  10.             uart0_putchar(c, &RTbuf_UART0);
  11.         }
  12.         _delay_us(1);
  13.     }


如果不加“_delay_us(1);”这句,就没法收发,加了就可以。什么原因呢?
BitFu 发表于 2015-8-28 16:59 | 显示全部楼层
R_count定义成volatile就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部