Timer 1soll Timer 0 ansteuern

Gast #424721
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich habe ein kleines selbstgebautes Board mit:
- Atmega 128
- ISP Schnittstelle
- und benutze AVR Studio, AVR-GCC und PonyProg.
- Verbindung steht (Fuses und Speicher können gelesen und beschrieben 
werden)

Und zusätzlich noch eine Mini-Oszilloskop Platine zum Prüfen der Pins 
für die Hardware

Ziel ist es den Timer 0 mit einer Grundfrequenz am OC0 (PB4)Pin 
auszuschleifen... Allerdings funktioniert das nur in der Simulation und 
nicht auf der Hardware. D.h. allein da hängts schon....hmpf

Die vom Timer 0 erzeugte Grundfrequenz soll in Folge über den Timer 1 
via Interrupts getaktet werden.

Datenblatt und Foren habe ich jetzt schon häufig durchgeklappert und 
bekomme keine Lösung zu meinem Problem?! Fehlermeldung für den Code von 
AVR Studio gleich zero.

Kann mir jemand da eventuell drüber gucken?! Ich wäre sehr dankbar.

Vielen herzlichen Dank im Vorraus

Martin
------------------------------------------------------------------------ 
------

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

int boot_periphericals()
{
  DDRA  |= (1<<DDA0);
  PORTA |= (1<<DDA0);
}

void boot_timer0 ()                  // Timer 0 (8Bit)
{
  DDRB  |= (1<<DDB4);
  PORTB |= (1<<DDB4);
  TCNT0 =  0x8F;
  OCR0  =  0x8F;
  TIMSK |= (1<<TOIE0);
  SREG  |= (1<<SREG_I);
  TCCR0 |= (1<<COM00)|(1<<WGM01)|(1<<CS01);
}

/*void boot_timer1 ()                  // Timer 1 (16bit)
{
  DDRB |= (1<<DDB5);
  PORTB |= (1<<DDB5);
  OCR1AH =0xFF;
  OCR1AL =0x70;
  TCNT1H =0xFE;
  TCNT1L =0xE1;
  TIMSK |= (1<<TOIE1);
  TCCR1A = (1<<COM1A1)|(1<<COM1A0);
  TCCR1B = (1<<WGM12);
  TCCR1C = 0x00;
}*/

int main ()
{
  boot_periphericals();
  boot_timer0();
  boot_timer1();
  while (1)
  {
  }
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren