Advertisement
NapsterMP3

Serial com checksun receptor

Jun 29th, 2016
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. const uint8_t header = 0x7E;
  2. const uint8_t bufferSize = 4;
  3. uint8_t buffer[bufferSize];
  4. uint8_t readCounter;
  5. uint8_t isHeader;
  6. uint8_t firstTimeHeader;
  7.  
  8. int a=0;
  9. int b=0;
  10. void setup(){
  11. Serial.begin(115200);
  12. readCounter = 0;
  13. isHeader = 0;
  14. firstTimeHeader = 0;
  15. }
  16. void loop()
  17. {
  18. if(Serial.available() > 0){
  19. uint8_t c = Serial.read();
  20. if(c == header){
  21. if(!firstTimeHeader){
  22. isHeader = 1;
  23. readCounter = 0;
  24. firstTimeHeader = 1;
  25. }
  26. }
  27. buffer[readCounter] = c;
  28. readCounter++;
  29.  
  30. if(readCounter >= bufferSize){
  31. readCounter = 0;
  32.  
  33. if(isHeader){
  34.  
  35. uint8_t checksumValue = buffer[3];
  36.  
  37. if(verifyChecksum(checksumValue)){
  38. int a = (buffer[1]);
  39. int b = (buffer[2]);
  40. }
  41. isHeader = 0;
  42. firstTimeHeader = 0;
  43. }
  44. }
  45. }
  46.  
  47.  
  48.  
  49.  
  50. }
  51.  
  52.  
  53.  
  54.  
  55. uint8_t verifyChecksum(uint8_t originalResult){
  56. uint8_t result = 0;
  57. uint16_t sum = 0;
  58.  
  59. for(uint8_t i = 0; i < (bufferSize - 1); i++){
  60. sum += buffer[i];
  61. }
  62. result = sum & 0xFF;
  63.  
  64. if(originalResult == result){
  65. return 1;
  66. }else{
  67. return 0;
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement