Answer 在3V时,Power On Reset时间为45ms~180ms;5V时,Power On Reset的时间 35ms~140ms 间接寻址如何使用? Answer 首先将要读写之Data Memory的地址先存入地址指针缓存器 (MP),然后对IAR执行读写 (例如: MOV a, IAR),即可读到MP所指到的Data (MP的内容当地址)。间接寻址功能特别方便于数列 (array) 的处理,一般先将数列地址放入MP做运算后再读取所需的数列Data。 查表指令如何使用,有何注意事项? Answer 查表指令有二种,一种是TABRDC指令,此指令读取目前指令所在表数据,另一种为TABRDL指令,此指令固定读取最后一页表数据。要查表时首先必需将表的Low Address填入TBLP再执行查表指令,表的Low Byte Data将存入指令指定的内存;表的High Byte Data被存入TBLH中,要注意未满16-Bit之表Data高位被补0。 可以在Interrupt Service Routine内执行Call吗? Answer 因为HT48R05A-1/HT48C05和HT48R06A-1/HT48C06仅有2层Stack,很容易在进入Interrupt时Stack已经满了,如果此时再执行Call会造成Stack Over,而使得程序无法返回,所以强烈建议不要在Interrupt内执行Call。从程序观点,一般要求Interrupt要越短越好,所以也不适合在Interrupt内执行太长的Call。 已经进入HALT Mode为何还有耗电? Answer MCU进入HALT会将系统OSC关闭,但WDT OSC (如果Option选WDT Enable) 仍在工作,而且全部I/O会保持HALT前状态,除了WDT OSC会耗一些电外,最要注意的是Input Port是否浮接或者Output Port是否仍有负载,这些I/O处理要非常小心,否则会耗大电流。 PA已经Low为何没有唤醒MCU? Answer MCU的PA Port唤醒为瞬间下降缘触发,若在执行HALT之前PA已经Low,且在HALT期间一直维持在Low,因为没有下降缘动作,所以无法唤醒MCU。 为何外部中断有下降缘,仍然没有唤醒MCU? Answer 虽然MCU可由中断唤醒,但严格的说是要靠中断要求旗标 (Request Flag) EIF由0变1才能唤醒。若在MCU进入HALT之前EIF已经设定 (EIF=1),则再来之INT无法改变EIF的值,亦即是EIF不能由0变1,所以不能唤醒MCU。 WDT Clock Source选择WDT OSC和选择 fSYS/4有何差别? Answer WDT Clock Source选择WDT OSC则在系统误入HALT时WDT Timer仍然继续工作,当WDT Time-out可以再启动系统。若选择 fSYS/4 则在误入HALT后,则一直沈睡下去无法Wake-up,但选择WDT OSC则需花一些代价 (消耗电流)。在另外一种情形,如果系统正常就有HALT功能,且在HALT时不希望被WDT叫醒,则此时WDT Source可选 fSYS/4。 Question Prescaler + 8-Bit Timer之Prescaler可以Reset吗? Answer Prescaler在Power On Reset后,就一直不停的Run,没有任何指令可以Reset此Prescaler。 8-Bit Timer/Counter之Timer Mode如何设定? Answer 因Timer/Counter有3种模式,即Timer、Event Counter和Pulse Width等3种。
当Timer被打开后,Timer开始向上计数,若Timer OFF (TMRC.4=0),则Timer立即停止。下次Timer再ON,则从上次停留值继续往上数,直到满位溢出产生中断,同时Timer 重新加载初始值。 Power On Reset时间为何? (责任编辑:admin) |