STM32F103C8, BluePill moin, ich möchte einen externen INT auf PA9 auslösen. Das Portbit wird in AFIO_EXTICR3 ( Bit4..Bit7) eingetragen. Nach DB wird eingetragen: 0000: PA[x] pin 0001: PB[x] pin 0010: PC[x] pin 0011: PD[x] pin 0100: PE[x] pin 0101: PF[x] pin 0110: PG[x] pin Da ich PA9 benutzen will, werden alle Bit im Register 0. Woher soll der µC nun wissen, das mein INT über PA9 kommt? Danke. VG Jan
Jan schrieb: > Da ich PA9 benutzen will, werden alle Bit im Register 0. > Woher soll der µC nun wissen, das mein INT über PA9 kommt? Weil dann nur PA9 EXTI9 triggern kann. Du kannst z.B. dann nicht mehr PB9 als GPIO Interrupt verwenden! Ist scheiße, ist aber so, und ist kein Aprilscherz..
Stefanus F. schrieb: > Waaaaah Wirklich? Ja, bei den STM32 sind die EXTI-Interrupts jeweils pro Pin quer über die Ports zusammengefasst, dh. EXTI9 ist PA9, PB9, PC9, PD9, etc. Dazu kommt noch, dass es (je nach Controller?) Zusammenfassungen gibt, so dass EXTI5 bis EXTI9 nur einen einzigen, gemeinsamen Interrupt auslösen. Man kann zwar feststellen woher der kam aber das kostet eben ein paar zusätzliche Takte und man kann z.B. keine unterschiedlichen Prioritäten vergeben.
STM42 schrieb: > Du kannst z.B. dann nicht mehr PB9 als GPIO Interrupt verwenden! Stefanus F. schrieb: > Waaaaah Wirklich? Ich habe mich verlesen, dachte du wolltest aussagen, dass ein Pin nicht mehr als GPIO verwendbar ist, wenn er einem Interrupt Zugeordnet ist. Gemeint war aber sicher: Man kann nur einen Px9 Pin als Interrupt verwenden, man muss sich für einen Port (A-G) entscheiden.
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.