Programm für Atmega 8L

Gast #778474
Hallo erstmal!

Ich versuche den Timer 16Bit von dem Atmega 8L zu benutzen. Aber das 
funktioniert nicht. Ich benutze Winavr mit kamavr. Hier der C-Code.

#include <stdint.h>
#include <stdlib.h>

#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include <avr/wdt.h>



int main (void)
{

DDRC=1;
PORTC=1;
TCCR1B=0x02;
OCR1AH=20000>>8;
OCR1AL=20000%256;
TIMSK=0x10;

sei();

while(1);
 return 1;
}



ISR (TIMER1_COMPA_vect)

{
PORTC=0;
}

Ich will erstmal nur, dass er in die ISR reinkommt.

gruss mc
#778511
mc wrote:
> Hallo erstmal!
>
> Ich versuche den Timer 16Bit von dem Atmega 8L zu benutzen. Aber das
> funktioniert nicht.
Was funktioniert nicht?

> int main (void)
> {
>
> DDRC=1;
> PORTC=1;
> TCCR1B=0x02;
Bitte schreib das so, dass man ohne Blick ins Datenblatt erkennen 
kann, was da passiert. Siehe Bitmanipulation.
In diesem Fall
1
TCCR1B = 1 << CS11;

> OCR1AH=20000>>8;
> OCR1AL=20000%256;
Dürfte zwar in diesem Fall funktionieren, ist aber Murks. Schreib
1
OCR1A = 20000;
Die Drecksarbeit erledigt der Compiler.

> TIMSK=0x10;
Siehe oben bei TCCR1B

Und wie gesagt: Musst schon erzählen, was genau nicht funktioniert bzw. 
was Dich zu der Annahme verleitet, dass es nicht funktioniert. Von der 
Funktion her scheint da zumindest kein dicker Fehler drin zu sein. Aber 
es gibt viele Stolpersteine, v.a. dann, wenn man den Simulator benutzt.
Gast #779251
> #include <stdint.h>
> #include <stdlib.h>
>
> #include <avr/eeprom.h>
> #include <avr/interrupt.h>
> #include <avr/io.h>
> #include <avr/pgmspace.h>
> #include <avr/sleep.h>
> #include <avr/wdt.h>

holla... wozu das alles? o_O
#include <avr/interrupt.h>
#include <avr/io.h>
die reichen dafür.

> DDRC=1;
> PORTC=1;

misst du auch am richtigen pin? PORTC=1 setzt nur das bit PC0. nur, um 
das mal auszuschließen. der rest sieht ziemlich richtig aus...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.