![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Console CAN 2.0 update du code testcan1
Dependencies: mbed
Fork of testCAN1 by
Fonctionnement
/!\/!\/!\Il est conseillé d'utiliser putty ou un terminal acceptant la touche entée comme un caractère, sinon il sera nécessaire de changer le code en remplaçant '\r' par un caractère de votre choix /!\/!\/!\
1 - La console vous demande la valeur de l'identificateur en hexadécimal(il faut donc entrer la valeur et valider par entrée)
2 - Elle demande le nombre d'octets à envoyer, il faut choisir le nombre d'octets à envoyer entre 0(pas d'octets) et 8 octets. Il n'y a pas besoin de valider, la validation se fait une fois le chiffre appuyé.
3 (si il y a plus de 0 octets) - Elle vous demandera la valeur à attribuer à chaque octets.
4 - Elle demande quel sera l'état du bit du RTR(0-1) 1 ==> Requête 0 ==> Donnée.
La validation se fait automatiquement
5 - Envoie les données et fait une capture de retour(à améliorer car ce n'est pas encore au point)
6 - Fait un résumé des trames capturées.
7 - Retour au point de départ (1)
main.cpp@0:1ab5fdb4fa56, 2018-02-09 (annotated)
- Committer:
- LouisReynier
- Date:
- Fri Feb 09 20:49:17 2018 +0000
- Revision:
- 0:1ab5fdb4fa56
- Child:
- 1:4d70e593345f
Programme qui g?n?re la trame qui est sens?e faire passer le noeud 20 dans une autre dimension !; Test?e ? l'analyseur logique : ca marche !
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
LouisReynier | 0:1ab5fdb4fa56 | 1 | #include "mbed.h" |
LouisReynier | 0:1ab5fdb4fa56 | 2 | // LR 9/02/18 |
LouisReynier | 0:1ab5fdb4fa56 | 3 | // |
LouisReynier | 0:1ab5fdb4fa56 | 4 | // bus CAN |
LouisReynier | 0:1ab5fdb4fa56 | 5 | // |
LouisReynier | 0:1ab5fdb4fa56 | 6 | // Ce programme genere une trame |
LouisReynier | 0:1ab5fdb4fa56 | 7 | // id=00, data= 01 20 , longueur = 2, can standard (11 bits id) |
LouisReynier | 0:1ab5fdb4fa56 | 8 | // |
LouisReynier | 0:1ab5fdb4fa56 | 9 | // testé à l'analyseur logique = OK !! |
LouisReynier | 0:1ab5fdb4fa56 | 10 | |
LouisReynier | 0:1ab5fdb4fa56 | 11 | Ticker ticker; |
LouisReynier | 0:1ab5fdb4fa56 | 12 | DigitalOut led1(LED1); |
LouisReynier | 0:1ab5fdb4fa56 | 13 | DigitalOut led2(LED2); |
LouisReynier | 0:1ab5fdb4fa56 | 14 | CAN can1(p9, p10,1000000);// on definit pin et debit |
LouisReynier | 0:1ab5fdb4fa56 | 15 | CAN can2(p30, p29, 1000000); |
LouisReynier | 0:1ab5fdb4fa56 | 16 | char counter = 0; |
LouisReynier | 0:1ab5fdb4fa56 | 17 | char octet_emis[8] = "ABCD"; |
LouisReynier | 0:1ab5fdb4fa56 | 18 | int id = 0x539 ; |
LouisReynier | 0:1ab5fdb4fa56 | 19 | |
LouisReynier | 0:1ab5fdb4fa56 | 20 | void send() { |
LouisReynier | 0:1ab5fdb4fa56 | 21 | |
LouisReynier | 0:1ab5fdb4fa56 | 22 | printf("send()\n"); |
LouisReynier | 0:1ab5fdb4fa56 | 23 | id = 0x00 ; |
LouisReynier | 0:1ab5fdb4fa56 | 24 | octet_emis[0] = 0x01 ; |
LouisReynier | 0:1ab5fdb4fa56 | 25 | octet_emis[1] = 0x20 ; |
LouisReynier | 0:1ab5fdb4fa56 | 26 | if(can1.write(CANMessage(id, octet_emis, 2, CANData, CANStandard ))) { |
LouisReynier | 0:1ab5fdb4fa56 | 27 | printf("wloop()\n"); |
LouisReynier | 0:1ab5fdb4fa56 | 28 | counter++; |
LouisReynier | 0:1ab5fdb4fa56 | 29 | printf("Message sent: %d\n", counter); |
LouisReynier | 0:1ab5fdb4fa56 | 30 | } |
LouisReynier | 0:1ab5fdb4fa56 | 31 | led1 = !led1; |
LouisReynier | 0:1ab5fdb4fa56 | 32 | } |
LouisReynier | 0:1ab5fdb4fa56 | 33 | |
LouisReynier | 0:1ab5fdb4fa56 | 34 | int main() { |
LouisReynier | 0:1ab5fdb4fa56 | 35 | |
LouisReynier | 0:1ab5fdb4fa56 | 36 | printf("main()\n"); |
LouisReynier | 0:1ab5fdb4fa56 | 37 | ticker.attach(&send, 1); |
LouisReynier | 0:1ab5fdb4fa56 | 38 | CANMessage msg; |
LouisReynier | 0:1ab5fdb4fa56 | 39 | while(1) { |
LouisReynier | 0:1ab5fdb4fa56 | 40 | printf("loop()\n"); |
LouisReynier | 0:1ab5fdb4fa56 | 41 | if(can2.read(msg)) { |
LouisReynier | 0:1ab5fdb4fa56 | 42 | printf("Message received: %d\n", msg.data[0]); |
LouisReynier | 0:1ab5fdb4fa56 | 43 | led2 = !led2; |
LouisReynier | 0:1ab5fdb4fa56 | 44 | } |
LouisReynier | 0:1ab5fdb4fa56 | 45 | wait(0.2); |
LouisReynier | 0:1ab5fdb4fa56 | 46 | } |
LouisReynier | 0:1ab5fdb4fa56 | 47 | } |