123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*********************************************************************
- * analog example for Versa1.0
- * Analog capture on connectors K1, K2, K3 and K5.
- *********************************************************************/
- #define BOARD Versa1
- #include <fruit.h>
- #include <analog.h>
- #include <dcmotor.h>
- t_delay mainDelay;
- DCMOTOR_DECLARE(A);
- DCMOTOR_DECLARE(B);
- void setup(void) {
- //----------- Setup ----------------
- fruitInit();
-
- pinModeDigitalOut(LED); // set the LED pin mode to digital out
- digitalClear(LED); // clear the LED
- delayStart(mainDelay, 5000); // init the mainDelay to 5 ms
- //----------- Analog setup ----------------
- analogInit(); // init analog module
- analogSelect(0, MOTA_CURRENT); // assign MotorA current sense to analog channel 0
- analogSelect(1, MOTB_CURRENT); // assign MotorB current sense to analog channel 1
- //----------- dcmotor setup ----------------
- dcmotorInit(A);
- dcmotorInit(B);
- }
- void loop() {
- // ---------- Main loop ------------
- fraiseService(); // listen to Fraise events
- analogService(); // analog management routine
- if(delayFinished(mainDelay)) // when mainDelay triggers :
- {
- delayStart(mainDelay, 5000); // re-init mainDelay
- analogSend(); // send analog channels that changed
- DCMOTOR_COMPUTE(A,SYM);
- DCMOTOR_COMPUTE(B,SYM);
- }
- }
- // Receiving
- void fraiseReceiveChar() // receive text
- {
- unsigned char c;
-
- c=fraiseGetChar();
- if(c=='L'){ //switch LED on/off
- c=fraiseGetChar();
- digitalWrite(LED, c!='0');
- }
- else if(c=='E') { // echo text (send it back to host)
- printf("C");
- c = fraiseGetLen(); // get length of current packet
- while(c--) printf("%c",fraiseGetChar());// send each received byte
- putchar('\n'); // end of line
- }
- }
- void fraiseReceive() // receive raw
- {
- unsigned char c;
- c=fraiseGetChar();
-
- switch(c) {
- case 120 : DCMOTOR_INPUT(A) ; break;
- case 121 : DCMOTOR_INPUT(B) ; break;
- }
- }
|