Ich mache gerade die ersten verzweifelten Versuche mit INTs bei ARM
Ich will einen externen Interrupt durch PIN B1 auslösen können
Fehlt hier noch was?
Bei IMR hatte ich einfach alles eigneschaltet, hoffe das verursacht kein
Problem
welchen der AFIOs muss man benutzen, wenn ich nur Pin B1 nutzen will?
Ich habe das mit den AFIOs noch gar nicht überblickt
1
RCC_APB2ENR.AFIOEN:=1;// Enable clock for alternate pin functions
2
AFIO_EXTICR1:=FFFFFFFF;// PB as External interrupt
3
4
EXTI_RTSR:=0x00000400;// Set interrupt on Rising edge
Was bist du denn für ein Clown?
"Hoffnung ist ein schlechtes Prinzip…"
Ich könnte mir vorstellen, sowas ähnliches haben sich deine Eltern im
Nachhinein bei dir auch gedacht 😂
Ahh, ChatGPT hat auf AFIO_EXTICR1 := 0x00000010; hingewiesen. Es geht
zwar noch nicht 100% aber, nun tut sich jedenfalls was:-)
Nun muss ich nur noch die Sin von EXTI_PR verstehen. Gab es das beim
Atmega auch schon, ich kann mich gar nicht erinnern, dass ich das da
löschen musste
Das RefMan steht fein säuberlich ausgedruckt und abgeheftet im Schrank
neben der teuren MikroE Entwicklungsumgebung, aber programmieren muss
die KI.
So langsam mache ich mir doch Sorgen.
J. S. schrieb:> So langsam mache ich mir doch Sorgen.
Manch einer glaubt eben, man könne fehlende NI durch KI kompensieren...
...man sieht ja hier, was dabei herauskommt.
So, falls ein anderer Anfänger hier mal nach sucht.
EXTI_RTSR und EXTI_IMR habe ich noch nicht korrigiert, aber so geht
erstmal alles.
Ich gehe jetzt erstmal ins Bett.
Von da an ist es dann leicht weiter herauszufinden wie es geht.
# Bluepill, STM32F103C8, Interrupts
Harry L. schrieb:> Manch einer glaubt eben, man könne fehlende NI durch KI kompensieren...>> ...man sieht ja hier, was dabei herauskommt.
Nun mal langsam.... ich programmiere den Cortex M0 und m3 seit Jahren
mit embitz und stdlib. neulich mal den Chatbotter dran gelassen und wen
man den prompt richtig macht spuckt der recht gescheite sachen aus, die
auch hardware nah sein können. Nur behauptet der leider auch steif und
fest etwas falsches und wenn man ihn drauf hinweist kommt nur "Sorry,
Sie haben recht ..." und wieder holt selbst falsche hinweise.
Max M. schrieb:> //*******************************> GPIOB_CRL := 0xFFFFFFFF;> RCC_APB2ENR.AFIOEN := 1; // Enable clock for alternate> pin functions> AFIO_EXTICR1 := 0x00000010; // PB.1 as External> interrupt> EXTI_RTSR := 0xFFFFFFFF; // Set interrupt on Rising edge> EXTI_IMR := 0xFFFFFFFF; // Set mask> NVIC_IntEnable(IVT_INT_EXTI1);
Was soll das den sein? Wofür gibt es CMSIS und StdLibs oder HAL? Damit
einer wieder nichtssagende Zahlen einschreibt und der nächste
Programmierer den Murks aus dem Fenster schmeißen will?
Thorsten M. schrieb:> Was soll das den sein? Wofür gibt es CMSIS und StdLibs oder HAL?
Fragt sich, ob die Pascal-Compilerumgebung überhaupt die Konstanten der
CMSIS bzw. StdLib zur Verfügung stellt...
Klar gibt es das da auch, nur darum geht es mir nicht.
Die ganzen HAL und andere, da kann ich mir keine der ewig langen
Parameter merken.
Nach einigen Monaten, wenn ich mal wieder am PC bin, bekomme ich eine
Kriese wenn ich ein neues Projekt mache.
Da kann ich auch gleich die einzelnen Register zusammensuchen und habe
mir davon noch viel merken können.
Von Hall und selbst den Mikroe Konstanten, kann ich mir kaum welche
merken da das alles unfassbar kryptisch ist.
Dann erstelle ich ggfls. lieber meine eigenen, wenn alles rund läuft
oder lasse es so.
Klar, kann ich mir auch mit CubeMX alles zusammenklicken, und es
funktioniert dann auch fix, aber durchblicken tu ich da nichts mehr.
Ich bin so schon genug mit den ARM überfordert.
Und in meinem Alter lernt es sich nicht mal so schnell um
Max M. schrieb:> Die ganzen HAL und andere, da kann ich mir keine der ewig langen> Parameter merken.
Du hast schonmal was von Autoergänzung gehört? Also wenn ich bei Visual
Studio oder Embitz schriebe merke ich mir keine der
NVIC_SetzeDasRegisterAufdenNeuenWert (....)
Geschichten, sondern wähle nur aus welche WRAPPER Funktion ich brauche
UND selbst die Parameterliste zeigt er mir an und was da rein muss....
also mehr Gehhilfe geht echt nicht. Es gab alles schonmal , kaum etwas
muss man neu erfinden.
Ich bin 55 und habe den ARM im Selbststudium erlernt, super Youtube
Videos, Blogs usw. und sehr viel selbst geschrieben und gebastelt mit
Bluepill und den Disco Boards STM429 usw. Inzwischen poste ich eigene
Videos und erkläre das Innenleben wie DMA usw. Alles kein Hexenwerk, der
ARM ist einer der durchdachtesten uC der Welt. Und mit C und Arduino
sehen sowieso alle uC gleich aus. Bei meinem Fahrtebuch Logger im Auto
arbeiten 8 Interrpts, 3 Timer, UART, SPI, I2C, NMEA auswqerten, SD karte
alles im IRQ und noch nie abgestürzt.
PS: Pascal ist keine Sprache für den, C oder Python!
"PS: Pascal ist keine Sprache für den, C oder Python!"
Python ganz sicher nicht.
Und weshalb Pascal keine geeignete Sprache sein soll erschließt sich mir
nicht
Ich kann da keinen Unterschied erkennen.
Pascal ist sogar sehr gut geeignet.
Genauso wie C hat sich auch Pascal weiterentwickelt.
Dir ist sicher bekannt das z.B. Apples Lisa Computer in Pascal
geschrieben wurde, also das OS.
Oder das C die Rekords aus Turbo Pascal übernommen hat.
Vielleicht denkst du an das Ursprüngliche Pascal, das hat aber mit
Borland Pascal 6 oder 7 bzw. Delphi kaum noch was gemein und ist eine
mächtige Programmiersprache geworden.
Und ja, diese Hilfen gibt es, damit werde ich aber nicht warm (Ich bin
deutlich über 55)
Anbei noch mal meine heute gemachten Verbesserungen, damit auch andere
Anfänger eher nachvollziehen können wie es sein müsste, damit es
zumindest funktioniert
Max M. schrieb:> Oder das C die Rekords aus Turbo Pascal übernommen hat.
Das bezweifle ich. Turbo Pascal kam 1983 raus. C gibt es seit 1970 und
da gab es die sog. Structs (Pascal: Records) bereits schon.
Woher ich das weiß: Die Erstausgabe des K&R kam 1978 raus. Und da waren
die structs längst Bestandteil. Hier wurde nämlich das "Ur-C" erklärt -
Stand 1970.
Frank M. schrieb:> Max M. schrieb:>> Oder das C die Rekords aus Turbo Pascal übernommen hat.>> Das bezweifle ich. Turbo Pascal kam 1983 raus. C gibt es seit 1970 und> da gab es die sog. Structs (Pascal: Records) bereits schon.>> Woher ich das weiß: Die Erstausgabe des K&R kam 1978 raus. Und da waren> die structs längst Bestandteil. Hier wurde nämlich das "Ur-C" erklärt -> Stand 1970.
Pascal wurde in den '70er Jahren im letzten Jahrhundert definiert.
War halt die Zeit wo solche Konstrukte entwickelt wurden. "Algorithms +
Data Structures = Programs" kam 1976 auf den Markt.
Hatte ich mal irgendwo gelesen. Abe wie gesagt, macht es sonst keinen
Unterschied ob es nun C oder Pascal ist, sicher so oder so besser als
Python für Controller, selbst gegen Basic sollte nichts sprechen, das
aktuelle kenne ich aber nicht.
So hatte ich es gelesen. Das es dort dann auch von C übernommen wurde.
Aber wie gesagt, ist ja auch wurscht, will damit nur sagen das es sich
nicht nimmt ob nun C oder Pascal
Hier z.B. wir es erwähnt
https://www.bernd-leitenberger.de/turbo-pascal4.shtml
"Pascal ist die ältere der beiden Sprachen. Sie wurde von 1968-1972 von
Niklaus Wirth entwickelt."
"Records sind eine der Neuerung von Pascal, die andere Sprachen wie C
übernommen haben."
Ist aber jetzt natürlich keine Referenz
Vax W. schrieb:> Frank M. schrieb:>> Max M. schrieb:>>> Oder das C die Rekords aus Turbo Pascal übernommen hat.>>>> Das bezweifle ich. Turbo Pascal kam 1983 raus. C gibt es seit 1970 und>> da gab es die sog. Structs (Pascal: Records) bereits schon.>>>> Woher ich das weiß: Die Erstausgabe des K&R kam 1978 raus. Und da waren>> die structs längst Bestandteil. Hier wurde nämlich das "Ur-C" erklärt ->> Stand 1970.>> Pascal wurde in den '70er Jahren im letzten Jahrhundert definiert.>> War halt die Zeit wo solche Konstrukte entwickelt wurden. "Algorithms +> Data Structures = Programs" kam 1976 auf den Markt.
Frank M. schrieb:> Max M. schrieb:>> Oder das C die Rekords aus Turbo Pascal übernommen hat.>> Das bezweifle ich. Turbo Pascal kam 1983 raus. C gibt es seit 1970 und> da gab es die sog. Structs (Pascal: Records) bereits schon.
Der grosse Vorteil (DER Vorteil) von TurboPascal verglichen UCSD oder
anderen Pascal-Compiler war die (Compile-)Geschwindigkeit und der Preis:
TurboPascal kostete 300DEM incl Mwst, die Data-Library (etwa
Dbase-Record-Verwaltung) kostet ca. 200DEM (?). Fuer 500DEM in 1985
konntest Du mit einem IBM-Salesrep vielleicht mal reden, Compiler waren
ueber 2000DEM!
UCSD-Pascal kam 1974 auf den Markt.
Es tat mir damals richtig weh den BASCOM-Compiler zu lizensieren (+
Royalties an IBM).
Wie preisguenstig die Sachen heute sind.
Ich aergere mich ein bischen, dass damals nicht bei Wirth mal in den
Vorlesungen zugeguckt habe.