Hallo Forum,

ich habe ganz massive Probleme mit dem ATmega 48 in AVR Studio 4.
Ich versuche mit dem Timer1 klar zu kommen. Ich habe dabei beachtet, dass er zwar weitgehend pingleich mit Mega8 ist, jedoch viele Registerbeziechnungen und Bitmuster anders sind. Auch in den Projektoptionen habe ich mich schon ein dutzend mal versichert, dass der 48er ausgewählt ist.

Erscheinungen:
- ich kann ihn z.B. nicht dazu bringen, einen ICR Interrupt bei steigender Flanke auszuführen. Das passiert konsequent bei fallender.

- In der ISR des Input Intrerruptes will ich auf Compare Match A umschalten. Das geht ums verrecken nicht.

- In Main mache mache ich eine Abfrage ob TCNT1 >= 40000 ist. Wenn ja, halte ich den Timer an, um einen Überlauf zu verhindern. Jedoch lösche ich den Inhalt nicht. Den brauche ich als lange Pause zum synchronisieren in der ISR. Dort kriege ich den Timer aber nicht wieder ans laufen. Ich machs jetzt so, dass ich statt ihn anzuhalten immer wieder den Wert 40000 reinschreibe.

Und auch sonst tauchen immer wieder Merkwürdigkeiten auf. Da gehen Pins High, die im Quelltext mal existiert habe, aber gelöscht wurden, oder reagieren gar nicht.


Wayens interessiert, die ISR´s
Code:
SIGNAL (TIMER1_CAPT_vect)
{

if (TCNT1 >= 40000){
	PORTB = 0b00001000;// zum debuggen mittels Digitalanalyzer - bis hier hin klapps
	edge_counter = 0;
	TCCR1B = 0b00000001;// try and error fehlersuche
	TIMSK1 = 0b00000010;// enable OCR1A int
	TCCR1B = 0b00000001;// try and error fehlersuche
	OCR1A = 500;
}
TCNT1 = 0;
edge_counter++;	
}

SIGNAL (TIMER1_COMPA_vect) 
{ 
TCNT1 = 0;
TIMSK1 = 0b00100000; // enable cmp int
PORTB = 0;// zum debuggen mittels Digitalanalyzer - bis hier klapps nicht 
}
und Wayens noch weiter interessiert, ich beschäftige mich mit dem Summensignal aus dem RC Modellbau. Das soll ein Generator werden, der aus bestimmten Gründen, ein eingelesenes PPM Signal mit einbeziehen soll.

EDIT:
ich habe auch gesehen, dass sich im AVR Prog aks Device kein 48er auswählen lässt. Habe jetzt immer mit Mega8 geflasht. Hatte da auch schon erscheinungen, wenn ich z.B. auf internen RC Oszillator 4 MHz umgestellt habe, dass der Controller einfach tot war. In Extern High Frequency zu schalten geht zum Glück.

viele Grüße,
Jasson