1。PORTE = 0X43 或 PORTE = 0XFF, 都不好。打个比方:你的PE0控制LED,PE1与LED控制无关,那么你的LED模块只应该对PE0的控制负责。你不应该在LED模块中控制PE1。碰到这种情况最好用宏: #define LED_INIT() do{DDRE |= 1<<PE0; LED_OFF(); }while(0) #define LED_ON() PORTE |= 1<<PE0 // 高电平点亮LED #define LED_OFF() PORTE &= ~(1<<PE0) 在程序中对LED的控制只使用宏。这样方便你的调试,维护和移植。
2。PORTA=0xFF,那么DDRA设置为0x00或者0xFF有什么讲究么? A: 有讲究,参考数据手册IO数据端口部分。
3. 动态调节CLK。不太明白是什么CLK.如果是指系统时钟,那就是不能调节的,熔丝位只能通过烧写器修改;如果是指定时器的时钟,是可以通过动态调节分频器来达到目的;如果是指外扩RAM的总线速度,那也是可以通过寄存器配置插入不同等待周期的。
|