- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: ADCC Interrupt

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183

    ADCC Interrupt

    Anzeige

    Praxistest und DIY Projekte
    Hallo, wie kann man die ADCC-Interrupt-Routine in Bascom erstellen?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    10.03.2005
    Alter
    35
    Beiträge
    967
    On Adc Adc_routine
    Sreg.7 = 1 'alle Interrupts zulassen, geht natürlich auch der Bascombefehl, weiss den aber nicht mehr auswendig

    ....
    ....
    ....


    Adc_routine:

    Return
    Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    ...geht nicht...

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    10.03.2005
    Alter
    35
    Beiträge
    967
    Guck dir aml das ADIF Bit aus dem ADCSRA Register an. Da muss eine "1" stehen. Zusammen mit der globalen Zulassung aller Interrupts löst es dann nach Beendung der A/D Wandlung die entsprechende ISR aus.

    Datenblatt hilft sehr viel!
    Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    Stimmt nicht, habe den fehler gefunden!

    Geht nur wenn "Nosave" oder andere Registersicherungen festgelegt werden.

    Also: On Adc Adc_routine Nosave

    Adc_routine:

    Return


    Das Datenblatt wäre hier Asche gewesen und wenn ich die ganzen 800 Seiten durchgelesen hätte.

    Diese reichen aus :
    Adcsr.aden = 1
    Adcsr.adsc = 1
    Adcsr.adate = 1
    und Admux.mux0 = 1 für den ADC1

    ADIF braucht gar nicht gesetzt werden. Der Radencoder läuft jetzt wunderbar.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Du irrst Dich, Nosave ist ein falscher Freund.
    Die Lösung für Dein Problem ist $HWSTACK.

    Du solltest mehr lesen. Z.B.: https://www.roboternetz.de/phpBB2/ze...ag.php?t=21482

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    Es ging darum, das Bascom eine Fehlermeldung ausgeworfen hat, die gesagt hat, das der obengenannte Befehl nicht komplett ist und das Compilieren abgebrochen hat. Nachdem ich "Nosave" hintenangestellt hatte wurde der Code compiliert.


    Nosave ist ein richtiger Freund.
    Du solltest dich mal mit dem Compiler auseinandersetzen.

    ............................................
    Vermeide LOCAL Variable
    Vermeide SUB mit Parameterübergabe
    Vermeide Bit-Variable
    Vermeide a>b, verwende a>=c oder b<a (RISC-Prozessor kennt kein größer als)
    Vermeide Single/Long etc. und dazugehörige Matheoperationen (am besten nur Byte und Word)
    ............................................

    Derjenige, der das geschrieben hat, sollte auf Winavr-c umsteigen und sich nicht mehr mit Bascom beschäftigen. Er fährt auf der falschen Wellenlänge.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Zitat Zitat von robby-fant
    Derjenige, der das geschrieben hat, sollte auf Winavr-c umsteigen und sich nicht mehr mit Bascom beschäftigen.
    Du weißt selber, wer Derjenige ist.
    Ich habe mir in den letzen Tagen 6 mal die Zeit genommen, in diesem Forum Deine Software-Fragen zu beantworten.

    Zitat Zitat von robby-fant
    Nosave ist ein richtiger Freund.
    Du solltest dich mal mit dem Compiler auseinandersetzen.
    Aus Deinen Codeschnipseln war nicht zu erkennen, ob Du in der ISR die Register rettest.
    Viele Einsteiger vergessen dass. Bei einfach struktierten Programmen kann es passieren, dass es kurzfristig anscheinend fehlerfrei läuft...

    Zitat Zitat von robby-fant
    Nachdem ich "Nosave" hintenangestellt hatte wurde der Code compiliert.
    ON ADC erzwingt definitiv kein NOSAVE. Der Fehler liegt woanders. Kenne Deinen Code nicht...

Berechtigungen

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

12V Akku bauen