main.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /*********************************************************************
  2. * Test Fraise on Versa1.0
  3. *********************************************************************/
  4. #define BOARD Versa1
  5. #include <fruit.h>
  6. unsigned char period = 200; // number of 5 ms time slices between prints of "Hello"
  7. unsigned char t = 0, t2 = 0;
  8. t_delay mainDelay;
  9. void setup(void) {
  10. //----------- Setup ----------------
  11. fruitInit();
  12. pinModeDigitalOut(LED); // set the LED pin mode to digital out
  13. digitalClear(LED); // clear the LED
  14. delayStart(mainDelay, 5000); // init the mainDelay to 5 ms
  15. pinModeDigitalIn(K1);
  16. }
  17. void loop() {
  18. // ---------- Main loop ------------
  19. fraiseService(); // listen to Fraise events
  20. if(delayFinished(mainDelay)) // when mainDelay triggers :
  21. {
  22. delayStart(mainDelay, 5000); // re-init mainDelay
  23. t = t + 1; // increment period counter
  24. if(t >= period){ // if counter overflows :
  25. t = 0; // clear counter
  26. t2 = t2 + 1; // increment aux counter
  27. printf("CHello! t2= %d K1= %d\n", t2, digitalRead(K1));// print Hello + aux counter value
  28. }
  29. }
  30. }
  31. // Receiving
  32. void fraiseReceiveChar() // receive text
  33. {
  34. unsigned char c;
  35. c=fraiseGetChar();
  36. if(c=='L'){ //switch LED on/off
  37. c=fraiseGetChar();
  38. digitalWrite(LED, c!='0');
  39. }
  40. else if(c=='E') { // echo text (send it back to host)
  41. printf("C");
  42. c = fraiseGetLen(); // get length of current packet
  43. while(c--) printf("%c",fraiseGetChar());// send each received byte
  44. putchar('\n'); // end of line
  45. }
  46. }
  47. void fraiseReceive() // receive raw bytes
  48. {
  49. unsigned char c;
  50. c=fraiseGetChar(); // get the first byte
  51. switch(c) {
  52. PARAM_CHAR(1,period); break; // if the first byte is 1 then set period
  53. //to the value of the next byte
  54. }
  55. }