Hallo. Hier mein Problem. Möchte mit nem Mega8 so ne Art Frequenzgenerator bauen (ich sage extra "so eine Art" weil ich weiß dass ich mit meiner Schaltung wahrscheinlich weder exakt die Amplitude noch die Frequenz erreichen kann. Es reicht aber so für meine Zwecke). Das Problem ist. Der Spannungssteller arbeitet solange ohne Probleme wie ich den Timer Interrupt noch ausgeschaltet lasse. Sobald ich den Timer Interrupt einschalte bleibt PC2 ständig auf 1. Der Frequenzausgang klappt trotzdem. Zur Erklärung: PC2 steuert nen Transistor an der nen Zwischenkreis lädt. Zusammen mit dem Analog/Digital Wandler soll das ganze so ne Art 2 Punkt Regler bilden. Es wird nur das High-Byte ausgewertet.Über den Timer Interruptsteuert PB1 ebenfalls nen Transistor an, der dann die Spannungs im Zwischenkreis in ne Frequenz "zerhacken" soll klappt auch an sich. Programm (Assembler) im Anhang. Über Hinweise wie ich einfacher Programmieren kann wäre ich auch dankbar. Bin Anfänger und mir per learning by doing selbstbeigebracht, doch am meisten interresiert mich warum der Spannungssteller nicht mehr funktioniert sobald ich den Timer Interrupt freigebe. Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus.
auf jeden Fall solltest du das SREG in der Timer-ISR sichern (und vor reti wieder herstellen) #define sreg_bak r2 timer0_overflow: ; Timer 0 Overflow Handler in sreg_bak, sreg com Puls_Pause ; Invertiert das Puls/Pause Register sbrs Puls_Pause, 0 ; Überspringt wenn Bit0 im Puls/Pause Register gesetzt ist. cbi PortB, 1 ; Setzt PortB Pin1 zurück. sbrc Puls_Pause, 0 ; Überspringt wenn Bit0 im Puls/Pause Register nicht gesetzt ist. sbi PortB, 1 ; Setzt PortB Pin1. out sreg, sreg_bak reti ; Springt zurück
Ja. Stimmt. Vollkommen vergessen. Hat aber leider auch nicht geholfen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.