LVR的复位电压会因制程的不同有一定漂移,具体请参看相关的Datasheet的D.C.参数表格。
________________________________________
Question19
HoltekMCU中断有优先级的区别,请问高优先级中断会不会打断低优先级中断?
Answer
HoltekMCU中断优先级区别是,当有多个中断申请同时存在时(对应中断请求旗标置起)MCU将首先响应高优先级的中断。
但不论哪一级中断只要被MCU响应后,其对应的中断请求旗标会被重置且EMI(总中断控制位)会被清零从而除能其它中断,所以如果MCU已进入了低优先级的中断则不会被更高优先级的中断所打断,直到中断服务子程序返回后才会响应。
________________________________________
Question20
如打算用定时中断把处在HALT下的CPU唤醒,遇到这样的问题:
HOLTEK的资料上说:
暂停模式是通过"HALT"指令实现且造成如下结果:
系统振荡器将被关闭,那么这是否说在HALT状态下,定时器也不可用?
Answer
HALT状态下,系统振荡器关闭,若定时器时钟来源为系统时钟,则定时器在HALT下停止;若以非系统时钟(如RTC)为时钟来源,则在HALT下,定时器仍然工作,溢出中断时唤醒MCU。
________________________________________
Question21
程序中建的表格在ROM范围之内,并且程序语句占用空间也在ROM范围内,但编译时却报错:
Programcodeistoolarge!
原因可能出现在哪?
Answer
请注意“MOVA,OFFSETTAB_Address+Num”语句的使用。
譬如TAB_Address是程序中所建立的表格的首地址,如果该表整体都在ROM范围内,而当TAB_Address+Num(Num是程序员自己定的一个地址偏移量)指向的地址却超出了ROM空间时,就会出现题目中所说的报错。
这一点很容易被忽略,所以要慎用“MOVA,OFFSETTAB_Address+Num”语句。
建议用下面两语句来代用:
MOVA,OFFSETTAB_Address
ADDA,Num
。
。
。
(后面再视情况而定做ADD算法是否溢出的判断,作相应处理)
则不会出现这种错误,因为表地址TAB_Address是否在ROM范围内能很容易发现。
________________________________________
Question22
把金属晶振外面的金属层与GND连接,这种接法是不是可以提高抗干扰性,使晶振更稳定?
Answer
一般来说,这种晶体外壳焊接到地,只是为了结构上的稳定:
抗震!
电路特性能够充分抑制EMI干扰。
只有频率较高的晶体,EMI方面才需要着重考虑其振荡波形上的overshoot毛刺对CPU时序带来的问题!
要求不高的地方,其实不必要太考虑,基本电路余量,合理配搭,组件参数,LAYOUT做好就足够了!
________________________________________
Question23
HT82A851R做为USB设备,哪些USB事件可使SIE向MCU发出中断请求?
如何识别是哪种USB事件产生了中断?
Answer
HT82A851R做为USB设备,有以下USB事件可使SIE向MCU发出中断请求。
1.USB休眠(SUSPEND)。
2.USB复位(RESET)。
3.USB恢复(RESUME)。
4.USB各个端点被访问(ACCESS)。
以上USB事件产生中断时,可通过以下方法来识别:
1.当USB进入休眠状态时,USC(20H)缓存器之bit0(SUSP位)会被SIE设置为1,并产生USB中断,在USB中断服务程序中只要看到此位为1,就知道是USB休眠事件产生了中断。
2.当USB发生复位时,USC(20H)缓存器之bit2(URST位)会被SIE设置为1,并产生USB中断,在USB中断服务程序中只要看到此位为1,就知道是USB因复位而产生了中断。
3.当USB离开休眠而被恢复(RESUME)时,USC(20H)缓存器之bit3(RESUME位)会被SIE设置为1,并产生USB中断,在USB中断服务程序中只要看到此位为1,就知道是USB因RESUME而产生了中断。
4.当HT82A851R的端点0~端点4,任何一个端点被访问时,均可产生USB中断,其相应的中断旗标元EP0F~EP4F(USR(21H)缓存器之bit0~bit4))会被SIE设置为1,在USB中断服务程序中查看相应的旗标,就知道是那个端点发生了中断。
________________________________________
Question24
PhoneMCU系列的看门狗时钟(WDT)有那些选择?
Answer
Phone的看门狗时钟(WDT)在掩模选项(MaskOption)中有四种选择:
1. 使用WDTOSC,其时钟周期在5伏特时约78µs,看门狗时钟产生溢位(WDToverflow)的时间为78µsx2(WS2WS1WS0)+9,例如:
WS2,WS1,WS0=7,则看门狗时钟溢位(WDToverflow)的时间为78µsx27+9=5.11s。
2. 使用T1(四分之一系统频率),其时钟周期在NormalMode高频模式为1.117µsx29,在GreenMode低频模式为122.07µsx29,在Sleep及Idle省电模式下将不会有动作,而看门狗时钟产生溢位(WDToverflow)的时间为T1x2(WS2WS1WS0)+9。
3. 使用32768Hz,其时钟周期在NormalMode高频模式、GreenMode低频模式、Sleep省电模式皆为30.52µsx29,在Idle省电模式下不会有动作,而看门狗时钟产生溢位(WDToverflow)的时间为30.52x2(WS2WS1WS0)+9。
4. 不使用看门狗时钟(WDTDisable)。
________________________________________
Question25
HT48FXXE内嵌有EEPROM,微控制器在正常工作中是如何对其进行读/写的?
Answer
微控制器是通过EECR缓存器(在Bank1的40H地址)来控制的。
通过读写EECR缓存器,控制EEPROM的CS、SK和DI/DO信号,以软件的方式生EEPROM的操作时序,进而达到读写EEPROM的目的。
控制EEPROM数据存储器共有7条命令:
READ、ERASE、WRITE、EWEN、EWDS、ERAL和WRAL,详细可参看规格书。
________________________________________
Question26
HT48F06E具有使用内部PFD分频器输出信号驱动蜂鸣器的特性,如何应用?
Answer
BZ和/BZ分别与PB0和PB1共享引脚,要应用内部PFD分频器输出信号驱动蜂鸣器的功能时,将无源蜂鸣器的两个脚分别与BZ和/BZ相连接,在掩膜选项中选择OutputTypePB0-PB1为PFDBZ_BZB,设定定时器产生的PFD频率与蜂鸣器的鸣响频率一致,并且在使用中要将定时器输出致能,此时控制PB0的输出,为1则蜂鸣器响,为0则蜂鸣器不响。
________________________________________
Question27
HT48FXXE使用ISP烧录时,一共享到哪几个脚?
Answer
HT48FXXEISP烧录一共享到5个脚,分别为VSS,VDD,RESET,SDATA(PA0),SCLK(PA4)。
________________________________________
Question28
HT46单片机怎样在PD口输出自己所需要的PWM频率?
Answer
HT46系列MCU的PWM输出频率是由系统频率决定的,Fpwm=Fsys/256;即系统频率定了之后,PWM频率也就定了。
PWM频率是不可调的,只能调占空比(通过给PWM寄存器赋值)。
________________________________________
Question29
HT24LC系列&HT93LC系列SerialEEPROM的差异为何?
Answer
Feature 2-Wire(HT24LCxx) 3-Wire(HT93LCxx)
Interface SerialdataI/O,Clock Datain,Dataout,Clock,CS
ClockRate(max) 400K 2M
PageWrite Yes No
MemoryOrganization X8bit X8bitorx16bit
WritetoAllmode No Yes
Specificfeatures HardwarewriteprotectWPpin SoftwarewriteprotectEWDSinstruction
________________________________________
Question30
对HT93系列操作时,在两个不同的命令码发送之间,一定要将CS引脚拉低吗?
Answer
是的。
而且在两个命令码之间CS拉低时间至少要保持250ns,如果工作电压在2.2V时候,CS的拉低时间至少要保持1000ns。
要注意的是,如果此时你进行写操作,当你所要写的数据发送完毕,将CS拉低保持一定时间后拉高CS,在读到HT93系列给出的ready信号之后,你必须再一次作一次拉低CS的动作,才能给出你要进行的下一条命令码的START位,也就是说需要两次拉低CS引脚。
________________________________________
Question31
如何用I/O口测温度值?
Answer
用I/O口测试温度只能用I/O充放电来测量,需要三个I/O,两个输出口,一个输入口,两输出口分别连接参考电阻R1,热敏电阻R2,R1和R2的另一端相连,并接入输入口和电容C1的一端,电容的另一端接地。
用输入口的门限电平判断充放电的结束否,R1是为修正R2的测量误差,其原理:
ΔT1=R1C1ΔT2=R2C1-->R2=ΔT2R1/ΔT1。
________________________________________
Question32
Ht49R50A-1是否有内置32768晶体?
Answer
HT49内部有两个晶体振荡电路,其一是32768晶体振荡电路,另一个是400KHZ~8MHZ的晶体振荡电路,这两个电路外部需要接晶体才能正常工作。
另外,芯片内部还有一个WDT的RC振荡电路,外部不需要接任何电路。
________________________________________
Question33
请教一下holtekc语言中没有float类型,那小数该怎么表示?
Answer
用整数保存咯(原始的AD值或则将电压值扩大10倍,100倍保存),然后需要显示的时候再处理成小数来显示,计算的话就用整数计算就可以了,反正你的计算过程也没人看到,全部再内部处理的。
最简单的,就是用除法,除10,把位数一个一个的分离出来
比如1.01,扩大100倍后就是101,也就是65H,需要把它换成小数显示的时候,就是(65H/100)=1(整数部分),然后(65H%100)得余数1,然后1/10,得小数点后第一位,1%10得余数。
。
。
。
________________________________________
Question34
请问HT的工程师:
46RU25AD采样的速度如何?
能否满足交流采样的速度,频率40~70Hz,每周期采样80个点左右?
Answer
tadc典型为80个tad,tadcs典型为32个tad,整个时间为tadc+tadcs,而tad最小为1us,
所以典型为112us。
应该差不多够采80个点吧,这些在规格书里都有说明。
________________________________________
Question35
求AD转换C语言范例
Answer
unsignedlongad_temp;
voidmain()
{
_acsr=0x01;
_adcr=0x21;
_start=0;
_start=1;
_start=0;
while(_eoc);
*((unsignedchar*)&ad_temp+1)=_adrh;
*((unsignedchar*)&ad_temp+0)=_adrl;
//ad_temp移位
_nop();
}
________________________________________
Question36
HT46RB70的时钟是否支持RCOscillator?
Answer
HT46RB70的时钟不支持RCOscillator,其只支持CrystalOscillator(6Mor12M)。
________________________________________
Question37
HT82Keyboard/MouseMCU的ESD及Latch-up能力如何?
Answer
HT82Keyboard/MouseMCU