Forum: HF, Funk und Felder Arduino : nRF24L01 mit RF24 Library - Probleme mit IRQs


von Peter H. (gismow)


Lesenswert?

Moin, moin...

Seit längerem lese ich in diesen Foren still mit, nun ist es Zeit "mich 
zu erkennen zu geben" :-)

Ich beschäftige mich aktuell mit Arduino Platinen im Bereich Modellbau. 
Mein Ziel ist es die Lichtstati und die Servosignale im Truck auszulesen 
und per Funk an die Auflieger zu übertragen. Hierzu habe ich die 
nRF24L01 Module gewählt.

Die Beispiele der Library funktionieren auch schon prima.

Erste Versuche mit den Lichtstati funktionieren soweit. Als ich aber nun 
das IRA Handling dazu geschaltet habe flog mir das Programm um die 
Ohren. Ich bekomme Abstürze direkt am Start.

Zur Logik:

Die Servosignale greife ich an den digitalen Pins ab. Je nach Pin habe 
ich die Bite für den C und D Port gesetzt. Dazu wurden die 
ISR(PCINT2_vect) und ISR(PCINT1_vect) Vektoren verwendet. Je nachdem 
welche Bits gesetzt/gelöscht sind errechne ich relativ zum letzten 
Wechsel die Zeiten zwischen den Wechseln. So bekomme ich die 
Signallängen der HIGH Pegel ser Servos und kann den aktuellen Winkel 
errechnen. Diese Winkel werden in einen MessageBuffer eingetragen, 
welcher dann per Funk über die nRF24L01 Module übertragen werden sollen.

Zusätzlich wollte ich die IRQ Leitung des nRF24L01 Moduls abgreifen um 
eine asynchrone Übertragung zu ermöglichen.

Nun zum Problem: Alles ist gut solange ich keine Servos oder die IRQ 
Leitung des Moduls anschließe. Sobald die IRQ Leitung im Pin steckt und 
der entsprechende Pin im IRQ Port aktiviert ist fliegt mir das Programm 
unkontrolliert um die Ohren.

Nun meine Frage: Habt ihr schon Erfahrungen gesammelt mit der IRQ 
Steuerung über ISR in Verbindung mit dem nRF24L01 Moduls am Arduino 
Board ?

Rückfragen ? Immer gerne... Her damit...  :-)

Greetinx
Peter

von Peter K. (Gast)


Lesenswert?

Ich verwende normal keine Arduino aber so wie es sich anhöhrt sitzt 
deine ISR nicht an der richtigen Stelle
wird ein Interrupt aufgerufen springt er an eine Speicherstelle wo kein 
ausführbarer Code hängt

überprüf mal ob die ISR am Richtigen Platz ist

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.