www.mikrocontroller.net

Forum: Compiler & IDEs Interrupt einlesen


Autor: Stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin gerade dabei eine Fernsteuerung zu bauen. Da mein Sender nur 1
Kanal hat und ich 3 Zustände brauche (Knopf1 gedrückt, Knopf2 gedrückt
und "nichts" gedrückt) wollte ich das ganze folgendermaßen
realisieren:

Der 1. uC (Sender) erzeugt mittels 16-Bit Timer am PD5 ein Signal und
zwar folgendermaßen:

"nichts" gedrückt bedeutet, OCR1A auf 65535
Knopf1 gedrückt bedeutet, OCR1A auf 20000 (PINA0 auf low)
Knopf2 gedrückt bedeutet, OCR1A auf 40000 (PINA1 auf low)

Der Sender funktioniert auch (hab alles am Oszi ausgemessen).


Der 2. uC (Empfänger) soll dann, wenn

am PD3 (INT1) ein Interrupt (fallende Flanke) ausgelöst wird:

TCNT1 in der Variablen "wert" speichern
TCNT1 auf 0 setzen
den Timer1 starten


und soll sobald am PD2 (INT0) ein Interrupt (steigende Flanke)
ausgelöst wird den Timer anhalten.

in der Main-Methode soll dann anhand der Größe der Variable "wert"
entschieden werden, ob PINC1 und PINC2 low oder high geschalten werden.
Die Variable wert sollte dann so groß sein, wie der Wert von OCR1A am
Sender!?

Leider bleiben beide Pins immer auf dem else-Fall.

Zur Beschaltung ist noch zu sagen, dass beide uC mit einem 4MHz-Quarz
beschalten sind, um sicherzustellen, dass beide Timer immer gleich
schnell zählen.

Bin für jeden Tipp dankbar ^^

MfG Stefan

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was setzt du hier?
ISR(INT0_vect) {
  TCCR1B;

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.