- Akku Tests und Balkonkraftwerk Speicher         
Seite 4 von 15 ErsteErste ... 2345614 ... LetzteLetzte
Ergebnis 31 bis 40 von 150

Thema: Timer0 Overflow Interrupt löst nicht aus (ATmega16)

  1. #31
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    E-Bike
    So. Ich hab' mal einfach dazugeschrieben, was ich meine.

    Konzept: Pfeif' auf alle Extras. Back to the roots.
    der Timer tickt einfach in der Baudrate, (9600 /sec)
    (ev. basteln mit preload)
    Will man was senden, schreibt man das Zeichen hin, und setzt einen Flag
    und den Status "start"

    Durch den Flag wird die ISR lebendig und macht je nach Status was anderes

    1 x Start Bit
    8 x Datenbit
    1 x Stop
    1 x stopbit stehenlassen, clear flag

    Ich kann es hier nicht probieren, vielleicht fehlt wo ein semikolon, ein bißchen Liebe braucht das halt.

    Is klar, wie's gemeint ist ?
    Angehängte Dateien Angehängte Dateien
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #32
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Jo ist klar wie's gemeint ist, habs mir gerade angeschaut! THX !!
    Wo hast das so schnell hergezaubert

    Beim compilieren gibts noch "expected an expression" wegen dem TX_M_SEND..
    brauch ich doch bloß #define TX_M_SEND 0 ??
    als Bit 0 von bTxFlag quasi..

  3. #33
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Haltaus nein, _M_ ist eine Maske (privater standard)

    #define TX_M_SEND 1 // oder 2 , 4, 8 etc.

    Nix zu danken, erst wenn's funzt, gibt's du einen aus
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #34
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    kannst die asm-datei von Bascom dann gedanklich in winavr-c umsetzen.
    bisschen denken musste schon. so setze ich auch lösungen teilweise von Bascom in c um wenns nichts anderes gibt.
    mfg pebisoft

  5. #35
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    @schamp: Ich schau mir das am Wochenende mit dem Oszi an, das sind ein paar Sachen seltsam.
    Laß es inzwischen gut sein.
    Ich rühr mich zuverlässig
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #36
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    hm ok !! thanks a lot !! osci hab ich leider keines daheim.
    wollt morgen nochmal weiter probieren

  7. #37
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hi, schamp, Zwischenbericht:
    Ich hab bei meiner RNBFRA (Mega32) elegant die Hw-Uart deaktiviert und versuche, den Pin TxD zu Fuß zu bedienen. (dort hängt ja der Max drauf).
    Super Idee, geht aber nicht, weil ich auf dem Pin den Pegel nicht auf Low bekomme, ergo geht das Ganze mal nicht. Auf einem Anderen ist das kein Problem, aber da ist kein Max drauf. Zum Mäusemelken !
    Vom Timing etc. schaut das gut aus, TImer Interrupt macht kein Problem.
    Auch die RS232 Signale schauen ja nicht schlecht aus, d.h. der Weg stimmt, aber eben--> der Pegel.
    Ich hab im Datasheet nix gefunden, warum das so sein könnte, hast du eine Idee ? Irgendwas funkt mir dazwischen.
    *nerv*
    Egal, von so einem Kistel laß' ich mich nicht verschaukeln, das ziehen wir durch.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #38
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Moin Moin !!
    Und es läuft *juhuu*
    Bin das ganze Programm nochmals durchgegangen. 2 Zeilen geändert und dann isses gelaufen

    beim case TX_C_START, das Startbit auf LOW

    PORTD &=~(1<<PD4); // Set Start Bit (LOW)

    und case TX_C_STOP, Stopbit auf HIGH

    PORTD |=(1<<PD4); // Set Stopp Bit (High)

    (siehe auch Atmel AppNote !)

    Stells gleich online, kommentier es noch ein bissl ausführlicher

    btw:
    Jetzt könnt ma eigentlich eine eigene AppNote schreiben und diese veröffentlichen
    _C_ steht bei dir für CASE oder ?

    nochwas: mit Hyperterminal funktionierts nicht... nehmt lieber Tera Term...

  9. #39
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Moin ! Ich hab gehofft (befürchtet) daß daß ein Pseudoproblem ist ,d.h. nur bei mir, weil ich den TxD Pin verwende.
    In der App-Note ist ein Durcheinander, was Hi und Lo betrifft. TTL ist ja active HIGH, RS232 Active LOW, also start und stop genau verkehrt.
    Das hast du ja Gottseidank gesehen. Freu mich auf deine Doku.

    Jetzt brauchen wir nurmehr das Empfangen gescheit einzubauen.

    Hyperterm ist die Strafe des Herrn für schwere Sünden.

    Richtig gesehn, ich hab die Konvention
    _C_ Konstante Zahl (z.b. für select u. vergleiche/Parameter 0 - juchuu)
    _V_ für Bit-Offset 0-32
    _M_ Bit maske ( MUH_M_KUH = (1<< MUH_V_KUH)
    u. alles, was mit #define definiert ist, schreib ich in Uppercase
    Sind so Hilfen, damit ich auch in einem Jahr meine Programme noch lesen (nachvollziehen) kann.
    Ich freu mich !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #40
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    So.. kurz Zeit gehabt zu kommentieren und ein paar Baudraten-Einstellungen zu testen.
    Ab 38400 Baud macht er nimmer mit.. (reicht aber völlig aus, wie ich finde)
    Mach mich dann an die Receive-Routinen ran.
    Angehängte Dateien Angehängte Dateien

Seite 4 von 15 ErsteErste ... 2345614 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests