- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Internen Interrupt alle x Sekunden auslösen

  1. #1

    Internen Interrupt alle x Sekunden auslösen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Bin gerade dabei ein Programm für mein 2313 zu schreiben.

    Brauche dafür noch einen Blink-Bit. Dies wollte ich mit einem internen Interrupt realisieren. Jede halbe Sekunde soll der Interrupt ausgelöst werden, der dann ein Bit in einer Variable toggelt.

    Nur hab ich keine Ahnung, wie ich einen solchen Interrupt programmiere...
    Hab bereits alles abgesucht, aber nix brauchbares gefunden.

    help....

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Wo hast du alles abgesucht?
    Im Forum?
    http://www.ckuehnel.ch/download.htm dort das Programm rnAVR.zip liefert dir auch schon ein fertigen Code für BASCOM. Dort musst du nur die Auslösefreuqenz (0,5Hz in deinem Fall) und Taktfreuqenz des AVRs einstellen. Mag sein, das du dafür den 16bit-Timer brauchst. Wenn's mit 8 bit nicht geht, wird es dir vom Programm aber gesagt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    ein einsatzfall für den timer-interrupt!
    ich guck grad mal wie das genau zu schreiben ist... steht alles in der hilfe...

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also im Grunde musst du den Timer alle halbe Sekunde zum überlaufen bringen. Zur Berechnung der WErte ist das Tool, was MArco gepostet hat ganz sinnvoll, ansonsten hier nochmal ein Thread zum Thema 1Sekunden:

    https://www.roboternetz.de/phpBB2/ze...929&highlight=

    MFG Moritz

  5. #5
    OK, werde das bei Gelegenheit testen.

    Habe @home zwar 2 AT90S2313, hab aber beide nun soweit hingerichtet, dass ich das Programm nicht mehr in den µC brennen kann...
    Muss mir erst wieder neue bestellen....

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    49
    Beiträge
    851
    Servus!

    Ich habe das Problem auch gehabt um mir eine konstante Zeitbasis zu erstellen. Ich habe einfach einen Timerinterrupt ausgelöst der etwas länger dauert als die Zeit die ich eigentlich benötige. Dann im Timerinterrupt selbst nach seiner Auslösung gehe ich sofort im ersten Befehl her und führe eine Korrektur durch indem ich den Timer mit einer konstanten Zahl vorbelege. So kann ich den Timer geschickt justieren und habe auch die Möglichkeit über Zählung weitere Unterteilungen vorzunehmen zu weiteren Takten. Abgleich mit Oszi und einem freien Pin am AVR den ich einfach im Interrupt toggeln lasse bei jedem Interrupt. Flankenabstände sind dann mein Interrupt in seiner Ausführungsperiode.

    Grüße Wolfgang

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests