Forum: Mikrocontroller und Digitale Elektronik "Freqenzgenerator" mit Mega8 - Spannungssteller und Frequenzsteller nicht gleichzeitig


von Stefan H. (santa87)


Angehängte Dateien:

Lesenswert?

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.

von H.J.Seifert (Gast)


Lesenswert?

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

von Stefan H. (santa87)


Lesenswert?

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
Noch kein Account? Hier anmelden.