Autor |
Externer interrupt an Timer 1 Suche nach: timer (2126) |
|
|
|
|
BID = 902501
MechMac666 Gesprächig
Beiträge: 197 Wohnort: Salzkotten
|
|
Hallo,
leider schaffe ich es nicht mehr eine Information zu finden, die ich vor Jahren problemlos gefunden habe.
Ich möchte mit einem ATmega644 eine PWM lesen. Ich habe Quelltext von mir gefunden, der den Timer 1 benutzt.
Ich weiß nicht mehr ob ich an INT0 oder INT1 anschließen muss.
Sind die Zahlen hinter dem INT die Timernummern? Also INT0=Timer0 INT1=Timer1?
Müsste ich in meinem Fall, ich möchte Timer 1 verwenden, also an INT1 anschließen?
Ich sollte für die µC-Projekte endlich mal Schaltpläne und Kommentare verwenden... |
|
BID = 902505
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
INTn sind externe Interrupts, die triggern keinen Timer.
Du kannst entweder einen INTn-Eingang nutzen und den Rest in Software machen (Timer starten usw.) oder du nimmst einen Timer Input (Tn)-Eingang, für Timer 1 z.B. T1, für Timer 0 entsprechend T0.
Edit: Allein den Timern eine externe Taktfrequenz vorzugeben reicht allerdings nicht aus, du brauchst dann mindestens einen zweiten Timer.
Intelligenter Wäre da der Timer Input Capture Pin ICP1 von Timer 1.
Damit kann man auch z.B. das Tastverhältnis bestimmen, was bei einer PWM ja ausschlaggebend ist.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 14 Okt 2013 20:42 ] |
|
BID = 902509
MechMac666 Gesprächig
Beiträge: 197 Wohnort: Salzkotten
|
Also das ist der Quelltext von "Damals". Kann man daran erkennen welchen Pin ich damals genommen habe?
void pwm_init()
{
TCCR1A = 0;
TCCR1B = (1<<ICES1) | (1<<CS10); // steigende Flanke, kein Prescaler
TCCR1C = 0;
TIMSK1 = (1<<ICIE1) ; // Interrupt akivieren, Capture
}
ISR( TIMER1_CAPT_vect )
{
if (run==0)
{
run=1; //als nächstes zweiter Durchlauf
wert1=ICR1; //Startwert
TCCR1B &= ~ (1<<ICES1); //setzen auf fallende Flanke
}
else
if (run==1)
{
run=0; //als nächstes erster Durchlauf
wert2=ICR1; //Endwert
TCCR1B |= (1<<ICES1); //setzen auf steigende Flanke
//Berechnung
Ergebnis=wert2-wert1;
}
}
|
BID = 902510
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Alter Schwede, lese mein Edit nochmal und dann überlege dir, wofür ICE wohl stehen könnte.
_________________
|
BID = 902517
MechMac666 Gesprächig
Beiträge: 197 Wohnort: Salzkotten
|
(I)nput (C)apture E ...keine Ahnung, vielleicht enable?
Ein altes Bild hat mich gerade gerettet. Dort ist zu sehen das es weder INT0 noch INT1 ist, sondern ICP.
Ich weiß nicht wieso ich so fixiert auf das externe Interrupt war.
[ Diese Nachricht wurde geändert von: MechMac666 am 14 Okt 2013 21:58 ]
|
BID = 902521
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Was heißt, ein altes Bild hat dich gerettet?
Zitat :
| Intelligenter Wäre da der Timer Input Capture Pin ICP1 von Timer 1. |
*hüstel*
_________________
|