Hoi, beginner/n00b vraagje, volgens mij zit ik goed hier of hoort dit meer thuis in het Elektro forum?
Ik heb in mijn programma een klasse gemaakt. de klasse readFunction.
als ik deze open: readFunction blabla (Pin Tx, Pin Rx, Pin transistor);
in class readFunction creëer ik dus een serial object(volgens mij heet dat een object?) deze staat aangeroepen in de public: Serial serial;
nu wil ik een interrupt hebben, zodat wanneer hij een serial bericht binnen krijgt hij de blabla.read() functie uitvoert.
Ik zou niet weten hoe ik dit moet doen, ik weet dat je een serial interrupt kan aanmaken d.m.v. serial.attach(je_functie); dit had ik al werkend maar ik probeer het nu te verwerken in een klasse.
Code:
Hoe zou ik dit kunnen doen? Is het uberhaupt mogelijk of gaat het tegen de richtlijnen in? En hoe moet het dan wel?
Ik heb in mijn programma een klasse gemaakt. de klasse readFunction.
als ik deze open: readFunction blabla (Pin Tx, Pin Rx, Pin transistor);
in class readFunction creëer ik dus een serial object(volgens mij heet dat een object?) deze staat aangeroepen in de public: Serial serial;
nu wil ik een interrupt hebben, zodat wanneer hij een serial bericht binnen krijgt hij de blabla.read() functie uitvoert.
Ik zou niet weten hoe ik dit moet doen, ik weet dat je een serial interrupt kan aanmaken d.m.v. serial.attach(je_functie); dit had ik al werkend maar ik probeer het nu te verwerken in een klasse.
Code:
C++: main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include "mbed.h" #include "functions.h" readFunction projector(PA_9, PA_10, PA_8);/*Tx, Rx, NPN transistor*/ Serial ctrl (PA_2, PA_3); float waitTime = 0; void leesfunctie(); int main() { serial.attach(readFunction.read());//dit werkt dus niet en dat is natuurlijk erg logisch. for(;;); } |
C++: functions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include "mbed.h" class readFunction{ float waitTime; bool already_on; public: readFunction(PinName Tx, PinName Rx, PinName out); //float waitTime = 0; //bool already_on = false; void read(void); Serial serial; DigitalOut npn; private: }; |
C++: functions.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include "mbed.h" #include "functions.h" readFunction::readFunction (PinName Tx, PinName Rx, PinName out) : serial(Tx, Rx), npn(out) { serial.format(/* bits: */ 9, /* Parity: */ SerialBase::Even, /* Stop bits: */ 1); //data settings already_on = false; waitTime =0; //end data settings npn.write(0); } void readFunction::read(void) { /*onbelangrijke code voor het verhaal*/ } |
Hoe zou ik dit kunnen doen? Is het uberhaupt mogelijk of gaat het tegen de richtlijnen in? En hoe moet het dan wel?