Forum: Mikrocontroller und Digitale Elektronik STM32F103C8, externen INT auf PA9


von Jan (Gast)


Lesenswert?

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

von STM42 (Gast)


Lesenswert?

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..

von Stefan F. (Gast)


Lesenswert?

STM42 schrieb:
> Du kannst z.B. dann nicht mehr PB9 als GPIO Interrupt verwenden!

Waaaaah Wirklich?

von Christopher J. (christopher_j23)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.