Hallo zusammen. Ich wollte fragen ob mir jemand sagen kann welches der Hardware-Interrupt INT0 oder INT1 PIN ist. Irgend wie bin ich zu dof und blicke nicht mehr durch und in Googel finde ich mit INT0 PIN oder so leider nichts. Ich habe ein Programm das bis jetzt auf einem Attiny84 lief und den INT0 oder INT1 benötigt. Könnte mir da jemand helfen? ich währe sehr dankbar. Gruss Stefan
Stefan W. schrieb: > Könnte mir da jemand helfen? ich währe sehr dankbar. Jeder Pin kann bei diesem Model Interrupts erzeugen. Siehe Datenblatt S.134 Kapitel 16.3.3: "Each PORT pin n can be configured as an interrupt source. Each interrupt can be individually enabled or disabled by writing to ISC in PORTx.PINnCTRL."
Datasheet: All pins can be used for external interrupt, where pins Px2 and Px6 of each port have full asynchronous detection.
Ausnahmsweise ist Guurgel die falsche Quelle. Es gibt nur eine : https://www.microchip.com/en-us/product/ATTINY1616 https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/ATtiny1614-16-17-DataSheet-DS40002204A.pdf So schwierig ist das doch auch nicht...
Danke Ingo Darf ich dich Konkret Fragen ob ich demnach den Attiny1616 für mein DCC Projekt nehmen kann? NMRA Digital Command Control (DCC) Library This library allows you to interface to a NMRA DCC track signal and receive DCC commands. The library currently supports the AVR ATTiny84/85 & ATMega88/168/328/32u4 and Teensy 3.x using the INT0/1 Hardware Interrupt and micros() ONLY and no longer uses Timer0 Compare Match B, which makes it much more portable to other platforms. https://github.com/mrrwa/NmraDcc Nochmals besten Dank
Purzel H. schrieb: > So schwierig ist das doch auch nicht... Wieder mal erwartet der gemeine User dass im gebratene Tauben in den Mund fliegen bzw dass ihm von anderer Seite alles auf dem Silbertablett serviert wird ohne dass er selbst seinen Denkapparat anwerfen muss.
Stefan W. schrieb: > Darf ich dich Konkret Fragen ob ich demnach den Attiny1616 für mein DCC > Projekt nehmen kann? Stefan W. schrieb: > The library currently supports the AVR ATTiny84/85 & > ATMega88/168/328/32u4 and Teensy 3.x using the INT0/1 Hardware Interrupt > and micros() ONLY and no longer uses Timer0 Compare Match B, which makes > it much more portable to other platforms. Deinen eigenen Aussagen nach unterstützt deine LIB den Controller nicht. Da du dich mit dem Entnehmen von Informationen aus Text so schwer tust, denke ich nicht, dass du das Problem selber lösen kannst. Stefan W. schrieb: > Ich habe ein Programm das bis jetzt auf einem Attiny84 lief und den INT0 > oder INT1 benötigt. Dann lass es weiterhin auf dem funktionierenden Controller laufen
Ingo Ich suche keine fertige lösung sondern ein Weg zu der Lösung um mein Wissen aus zu bauen. Der beste Lehrer war einmal auf das wissen anderer angewiesen. würde es in etwa um so etwas gehen wen ich es richtig verstanden habe. ISR(PORTC_PORT_vect) { PORTC.OUT ^= (1 << 0); PORTC.INTFLAGS |= (1 << 5); }
Stefan W. schrieb: > ISR(PORTC_PORT_vect) { > PORTC.OUT ^= (1 << 0); > PORTC.INTFLAGS |= (1 << 5); > } Genau, so würdest du das machen können. Vorher musst du aber natürlich noch den PC5 konfigurieren und den entsprechenden Interrupt aktivieren. Global Interrupt enable nicht vergessen.
"in etwa um so etwas" Ja, es muß über eine Art PCint abgefangen werden. Wie genau scheint hier keiner zu wissen. Das ist "ganz einfach" Nicht Möglich. Es gibt die Int0/1 Vectoren nicht.
Korrekte (verständliche) Schreibweise:
1 | PORTA.DIRSET = PIN4_bm; // PA4 as output |
2 | |
3 | PORTA.DIRCLR = PIN4_bm; // PA4 as input |
1 | PORTA.OUTSET = PIN4_bm; // PA4 on |
2 | |
3 | PORTA.OUTCLR = PIN1_bm; // PA1 off |
4 | |
5 | PORTB.OUTTGL = PIN1_bm; // toggle PB1 |
1 | ISR(PORTA_PORT_vect) |
2 | {
|
3 | PORTA.INTFLAGS = PORT_INT6_bm; // clear PA6 interrupt flag |
4 | }
|
Achim H. schrieb: > Wie genau scheint hier keiner zu wissen. Nein. Ich bin nur zu faul die Faulheit anderer zu unterstützen.
Hallo, das Bsp. von Microchip ist eine gute Basis. https://github.com/microchip-pic-avr-examples/avr128da48-ext-int-wakeup-example Klickste dich durch bis zur main.c, lesen, verstehen lernen, ausprobieren. Danach an eigene Zwecke anpassen. Die AVRs sind streng Art verwandt, sprich die Registernamen und Funktionalitäten sind nahezu gleich. Kannste direkt das Manual von deinem ATtiny daneben legen. Generell kann ich empfehlen bei allen 8 Bit ATtiny und AVR Controller in den Dokumenten quer zu lesen. Diese Getting Started Dokus zu verschiedenen Themen sind etwas verstreut verlinkt. Da sie wie gesagt sehr ähnlich aufgebaut sind, kann man alle diese Dokus für alle neuen Controller verwenden. Dann hat man den Einstieg geschafft denke ich. Die Getting Started Dokus kann man alle durchlesen. Bei Fragen - einfach fragen. Ich habe einen AVR128DB64 immer zur Hand. Ein Atmega4808/4809 ebenso.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.