2012-07-13 76 views
0

我有一個微控制器教練套件,包括ATMEGA8535和8MHZ xtal。我想製作一個簡單的程序,每隔1秒關閉/開啓led。 但它不會工作,當我運行教練,延遲似乎是7秒。無法產生1秒(BASCOM AVR)

這裏的程序與BASCOM AVR。

$regfile = "8535def.dat" 
$crystal = 8000000 

Config Porta = Output          

Config Timer1 = Timer , Prescale = 256  
Enable Timer1        
On Timer1 Isr_von_timer1   
Enable Interrupts 
Timer1 = 34285       

Do 
Loop 
End 

Isr_von_timer1:       
Timer1 = 34285            
Toggle Porta.0            

Return 
+1

如何做你確定34285的價值?也許它需要在5000左右? – 2012-07-13 17:06:17

+0

我讀過這個http://www.rn-wissen.de/index.php/Bascom_und_Timer(德國)。當我設置爲5000時,延遲似乎是15秒。 :( – felangga 2012-07-13 17:15:26

+0

獲得avr部分的數據表,您是否閱讀過該手冊中的計時器以及它們的工作方式?您是否通過時鐘樹跟蹤時鐘以查找除數是多少,並且是否控制和/或佔了那些除數? – 2012-07-13 17:32:51

回答

0

我解決了這個問題:我忘了激活外部xtal :)。

0

用於使用具有預分頻的8兆赫振盪器= 256以接通輸出一秒鐘,並使用切換命令關閉一秒TIMER1的正確值是31249(除數 - 1)