Hallo Teslanikola
ist ja auch OK, ich und vermutlich auch alle anderen hier sind gerne bereit Dir zu helfen.wenn ich mir selber helfen könnte , dann hätte ich die frage doch nicht in ein forum gestellt.
Wozu ICH nicht bereit bin, und das Thema hatten wir hier schonmal, ist Deine Arbeit zu machen. Ich erkläre Dir gerne wie man mit Interrupts umgeht, ich schaue auch gerne mal über Deinen Code und gebe meinen Senf dazu was man imo besser oder anders machen könnte. Aber Programmieren mußt Du Dein Programm schon selbst.
Armer schwarzer Kater!Sorry, wenn ich so böse war, aber wer 2 Stunden damit beschäftigt war herrauszufinden wie man 2 Timer als Counter und timer zusammen bringt und nach den 2 stunden soweit wie vorher ist dem brennt schon mal ein Fusebit durch.
Aber warum fragst Du dann nicht nach DEM womit Du ein Problem hast? Du fragst immer nur danach wer eine Lösung hat. Am besten gleich für das ganze Programm.
Wie Du 2 Interrupts ans laufen bringst ... kein Problem ...
Im abgekupferten Code hast Du für Timer0 stehen:
On Timer0 Overflow_Routine_Timer0
Enable Interrupt
Genau das "On Timer ..." fehlt für Timer 1!
On Timer0 Overflow_Routine_Timer0
On Timer1 Overflow_Routine_Timer1
Enable Interrupt
Mit On Timer0 (1) sagst Du dem Compiler das er 1. den Overflow-Interrupt einschalten soll und du sagst ihm 2. wohin er bei einem Interrupt springen soll. Nämlich zum Lable Overflow_Routine...
Also z.B.
Schau Dir im Simulator mal an was mit den Variablen Var1 & Var2 passiert und wann es passiert. Klar?Code:$regfile = "M8def.dat" Dim Var1 as Byte Dim Var2 as Byte On Timer0 Test1 On Timer1 Test2 Enable Interrupt Config Timer0 = Timer, Prescale = 1 Config Timer1 = Timer, Prescale = 1 Do loop Test1: incr Var1 Return Test2: incr Var2 Return
Ciao,
Werner







Zitieren

Lesezeichen