回复了 fighter:比如10hz正弦函数。一个周期是0.1s,256个采样点,每个点的执行时间是0.1/256=0.000390,也就是说我定时器定一个390us的时间即可,但是TH0=fd,TL0=06,fd06=(64774),定时时间也就是65535-64774=761us,和预计时间不一样啊,晶振是24m的应该和晶振没关系吧
嗨,有關係喔,你晶振24M的話會不一樣唷,公式為
f=SysClk/(65536-X) 1T定時
f=(SysClk/12)/(65536-X) 12T定時
假設都是預設值,就是Timer0的頻率為SysClk的12分頻,即12T定時
f=2M/(65536-64774)=2M/762=2624 Hz
有額外設定為T1定時
f=24M/762=31496 Hz
所以正確要是10 Hz的話
12T定時
X=65536-(2M/10)=負值,無法產生
1T定時
X=65536-(24M/10)=負值,無法產生
因此您必須降低您的時鐘頻率或者額外使用中斷來擴展