mikrocontroller.net

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


Autor: popi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;
}

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.