www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega8 timer problem


Autor: mehlspeise (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Habe folgendes Problem:

Möchte mit dem atmega8(auf stk 500) Port B toggeln. Mir ist egal bei 
welcher frequenz die leds getoggelt werden haupsache es ist sichtbar.
Habe folgendes Program geschrieben aber es haut nicht hin. Es leuchten 
immer alle leds.





#include <avr/io.h>
#include <avr/interrupt.h>

unsigned int x;

void start_timer0(void) {

  TCCR0 =  0x02;
  TIMSK =  0x01;
  TCNT0 =  255;
  sei();
}


ISR(TIMER0_OVF_vect) {

x++;

if(x==500)
{
  PORTB=0x00;
}

if(x==1000)
{
  PORTB=0xff;
}

}


int main(void)
{

start_timer0();

DDRB=0xff;

for(;;){}

}

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

#include <avr/io.h>
#include <avr/interrupt.h>

volatile unsigned int x;

void start_timer0(void) {

  TCCR0 =  0x05;
  TIMSK =  0x01;
    sei();
}


ISR(TIMER0_OVF_vect) {

x++;

if(x==4)
{
  PORTB=0x00;
}

if(x==8)
{
  PORTB=0xFF;
  x = 0;
}

}


int main(void)
{

start_timer0();

DDRB=0xFF;

while(1)
;

}


Dann sollte deine LEd ca. alle Sekunde blinken , bei 1Mhz takt , 
ansonsten natürlich fixer.

Gruß

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian Ostner wrote:
> Achso und lies das mal durch ;-)
> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Hmmm, vielleicht selber mal durchlesen. x wird ausschließlich in dem 
Interrupt Handler verwendet. Das volatile ist deshalb überflüssig...

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bis jetzt noch ja ;)

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.