Forum: Mikrocontroller und Digitale Elektronik Atmega8 liest Signal nicht ein


von Olli (Gast)


Angehängte Dateien:

Lesenswert?

Hallo an alle,

ich bin Anfänger und versuche mit dem Atmega8 ein Signal einzulesen und
auf dem UART auszugeben.
Das Signal ist gleich dem RC5-Code, nur das bei mir die Bits alle 100µs
wechseln. Mein Signal ist kürzer es hat nur 10 Bit.
Ich habe mein Programm an das RC5-Beispiel hier aus dem Forum angelehnt.
Seit einer Woche probiere ich jetzt rum und habe mich hier durch das
Forum gelesen, aber ich finde keinen Fehler. Es kommt außer meiner
Kopfzeile nichts am PC an.
Ich verwende einen Atmega8 mit Minimalbeschaltung, interner Takt 8MHz,
das Signal kommt von einem 74HC00 an Pin 4(PD2/Int0).

Könnt ihr mir helfen mein Problem zu lösen.

Vielen Dank

Olli

von Stefan E. (sternst)


Lesenswert?

1
ISR(TIMER0_OVF_vect)
2
{
3
  unsigned int Tmp = PulsTmp;
4
  TCNT0 = -2;          //Z�hlerstartwert 0
5
...
6
7
TCCR0 = (1<<CS01);      //Prescaler 8
Du willst alle 16 Takte einen Overflow-Interrupt haben? Keine Chance.

von Olli (Gast)


Lesenswert?

@Stefan

Ich wollte eigentlich 16-mal während einer Bitzeit prüfen ob es
Änderungen am Eingangspin gibt. Bin ich zu langsam mit dem Prescaler ?

Olli

von Walter (Gast)


Lesenswert?

>Bin ich zu langsam mit dem Prescaler ?
nein, zu schnell

von Stefan E. (sternst)


Lesenswert?

Olli schrieb:

> Ich wollte eigentlich 16-mal während einer Bitzeit prüfen ob es
> Änderungen am Eingangspin gibt.

Das wäre dann aber ein Interrupt alle 50 Takte (nicht 16). Auch das 
könnte knapp werden, so rein vom Gefühl her, denn du hast ja doch etwas 
Code in der ISR (mit diverser 16 Bit Arithmetik).

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.