Probleme mit Timer_T0Time bei Mega32 Kategorie: Programmierung Basic (von Andreas - 19.03.2008 13:01) | ||
| ||
Hallo, kann mir einer helfen. Ich wollte über die ' Timer_T0Time ' Funktion ein 1Millisekunden-Interrupt erstellen. Wie man im unten stehenden Programm sieht liefern die Mega32 und Mega128 unterschiedliche Ergebnisse. Da ich mit der Mega32 arbeite und die Mega128 nur testweise habe, bräuchte ich eine Lösung. Mache ich etwas verkehrt oder hat der Mega32-Interpreter einen Fehler. Besten Dank für die Hilfe Andreas Hier das Programm: 'Definition von globalen Variablen und Adressen Dim cnt1 As Byte ' Counter für Interrupt Dim cnt_10ms As Word ' Counter in 10ms Schritten Dim cnt_1ms As Word ' Counter in 1ms Schritten Dim Pause As Single'Word ' Pause in 10ms Schritten Dim Sekunde, Minute, Stunde As Byte ' für eventuelle Uhr / Betriebsstundenzähler? Dim i , y , z As Integer ' globale Variablendeklaration Sub main() ' Initialisierung ' !!!! ----- USB-Kommunikation abschalten ---- !!!!! SPI_Disable() 'Pullup-Widerstände von Port A Abschalten Port_DataDir(0,0) Port_Write(0,0) ' ------------------------------------------------- ' MEGA32 -->'ms --> Pause / cnt1 --> ms / Pause ' MEGA128 --> ms / Pause 'Timer_T0Time(14,PS0_1024) '500 --> 29 / 51 --> 1000 / 57 1000 / 1018 'Timer_T0Time(57,PS0_256) '500 --> 112 / 51 --> 1000 / 222 1000 / 1000 'Timer_T0Time(230,PS0_64) '500 --> 449 / 51 --> 1000 / 890 1000 / 990 Irq_SetVect(INT_TIM0COMP,INT_1ms) ' Interrupt Service Routine definieren Irq_SetVect(INT_TIM2COMP,INT_10ms) ' Interrupt Service Routine definieren 'Do While cnt1 <= 50 Do While Sekunde <=0 End While Msg_WriteFloat (Pause) Msg_WriteChar (32) Msg_WriteInt (cnt1) Msg_WriteChar (32) Msg_WriteInt (Sekunde) Msg_WriteChar (13) End Sub '--------------------------------------------- '---| ab hier folgen Subs und Funktionen |---- '--------------------------------------------- ' Interupt 10ms Sub INT_10ms() Dim irqcnt As Integer RTC() ' Funktionsaufrauf: RTC irqcnt=Irq_GetCount(INT_TIM2COMP) ' Interrupt Request Counter End Sub ' Interupt 1ms Sub INT_1ms() Dim irqcnt As Integer ms_1() ' Funktionsaufrauf: RTC irqcnt=Irq_GetCount(INT_TIM0COMP) ' Interrupt Request Counter End Sub Sub ms_1 () Pause = Pause + 1 End Sub Sub RTC() cnt1 = cnt1 + 1 ' 10ms Zähler erhöhen If cnt1=100 Then ' Display_Time() ' Funktionsaufruf: Display_Time Sekunde= Sekunde+1 If Sekunde=60 Then Sekunde=0 Minute= Minute+1 If Minute=60 Then Minute=0 Stunde= Stunde+1 If Stunde=24 Then Stunde=0 End If End If End If cnt1=0 End If End Sub | ||
Antwort schreiben Antworten: Re: Probleme mit Timer_T0Time bei Mega32 (von PeterS - 19.03.2008 13:58) Re: Probleme mit Timer_T0Time bei Mega32 (von Andreas - 19.03.2008 14:34) Re: Probleme mit Timer_T0Time bei Mega32 (von Sebastian - 19.03.2008 16:58) Re: Probleme mit Timer_T0Time bei Mega32 (von HW - 19.03.2008 17:01) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum