Forum: Mikrocontroller und Digitale Elektronik Beispielprogramm läuft nicht, aber ich erkenne nicht warum


von popi (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier ein Demoprogramm von
http://kreatives-chaos.com/index.php?seite=c_t1_pwm kopiert und in
meinen AVR-Studio geladen.

Dann habe ich mir das Programm angeschaut, um es zu verstehen.

Das meiste verstehe ich nun, aber was ich nicht verstehe ist, warum die
LED nun nicht leuchtet.

Ich habe diese an OC1A angelötet, aber es tut sich nichts.

Nun meine Fragen:
Im Simulator läuft das Programm ab; wenn der Timer1 auf 0xff steht,
dann geht PINB5 an.
Dann zählt der Zähler zurück und ab 0x7f schaltet dann PINB6 auch auf
an. Ab dann geht nur noch PINB6 aus und an. PINB5 bleibt immer an.
Warum tut es das, eigentlich brauche ich für die Ansteuerung meiner LED
doch nur einen Pin und Masse.

Aber jetzt kommt das Hauptproblem/Hauptfrage:
Es wird PINB6 gesetzt, ABER NICHT PORTB6!!! Was bedeutet, meine LED
leuchtet nie.

Warum ist das denn so ??? Ich habe auch im Datenblatt nachgelesen, aber
werde daraus nicht schlauer.

Könnt ihr mir bitte sagen, warum das so ist und vor allem, wo ihr da
den rettenden Hinweis im Datenblatt findet (wenn möglich bitte mit
Seitenangabe), ich finde nämlich nichts oder weiss nicht, wo ich
schauen soll.

Danke im voraus und liebe Grüße

popi


HIER DER QUELLTEXT:



#include <avr/io.h>


/* Timer1 initialisieren */
void timer1_init(void);


int main(void)
{

  DDRB = 0xff;

  timer1_init(); /* Timer1 initialisieren */

  OCR1AL = 0xff;
  OCR1BL = 0x7f;
  while(1);
}


void timer1_init(void) /* Timer1 initialisieren */
{
  /* normale 8-bit PWM aktivieren ( nicht invertiert ),
     Das Bit WGM10 wird im Datenblatt auch als PWM10 bezeichnet */
  TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10);

  /* Einstellen der PWM-Frequenz auf 14 kHz ( Prescaler = 1 ) */
  TCCR1B = (1<<CS10);

  /* Interrupts für Timer1 deaktivieren
  Achtung : Auch die Interrupts für die anderen Timer stehen in diesem
Register */
  TIMSK &= ~0x3c;
}

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.