Guest User

Untitled

a guest
Jan 13th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. int main(void) {
  2.     UCSRB = (1 << RXEN) | (1 << TXEN); // enable receiver and transmitter
  3.     //UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0); // 8-bit size word, write to C register
  4.     UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0) | (1 << USBS); // 8-bit size word, write to C register
  5. /*    UBRRL = 71; // baud rate = 9600, CPU frequency = 11.0592MHz
  6.     UBRRH = (71 >> 8);*/
  7.     UBRRL = 11; // baud rate = 57600, CPU frequency = 11.0592MHz
  8.     UBRRH = (11 >> 8);
  9.  
  10.     ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
  11.     ADMUX = (1 << REFS0);
  12.  
  13.     ADCSRA |= (1 << ADSC); // first conversion
  14.     while (ADCSRA & (1 << ADSC)); // first conversion
  15.  
  16.     while (1) {
  17.         ADCSRA |= (1 << ADSC);
  18.         while (ADCSRA & (1 << ADSC));
  19.  
  20.         unsigned int adc_value = ADCW;
  21.  
  22.         unsigned char lsb, msb;
  23.         lsb = adc_value & 0xff;
  24.         msb = (adc_value >> 8) & 0xff;
  25.  
  26.         unsigned char readout[2] = {msb, lsb};
  27.         unsigned char crc = crc8_ETSIEN302307(readout, 2);
  28.         unsigned char packet[3] = {msb, lsb, crc};
  29.         unsigned char encoded[5] = {0};
  30.         StuffData(packet, 3, encoded);
  31.  
  32.         for (unsigned char i = 0; i < 5; i++) {
  33.             while ((UCSRA & (1 << UDRE)) == 0);
  34.                 UDR = encoded[i];
  35.         }
  36.  
  37. //        _delay_ms(50);
  38.  
  39. /*        while ((UCSRA & (1 << UDRE)) == 0);
  40.         UDR = msb;
  41.         while ((UCSRA & (1 << UDRE)) == 0);
  42.         UDR = lsb;*/
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment