Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #include <util/twi.h>
  2.  
  3. /*Verbindung der Arduinos
  4. * beide mit GND
  5. * PC4 (M) mit PC4 (S)
  6. * PC5 (M) mit PC5 (S)
  7. *
  8. */
  9.  
  10. #define SENSOR A1
  11.  
  12. void ERROR();
  13.  
  14. int main()
  15. {
  16.  
  17. init();
  18. Serial.begin (9600);
  19.  
  20. //EIGENE Slave Adresse setzen, da hier Arduino selbst im Slave-Modus
  21. uint8_t SLA= 2;
  22. TWAR = SLA <<1; // letztes Bit für General Call
  23.  
  24. //Slave aktivieren; ACK für eigenen Adressenempfang
  25. TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWEA);
  26.  
  27. //Sensor konfigurieren, internen AD Wandler aktivieren
  28. DDRC &=~(1<<DDC1);
  29. ADCSRA|= (1<<ADEN); //ADC aktivieren
  30. ADCSRA |=(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); //Teilungsfaktor
  31. ADMUX |= (1<<MUX0); //Kanal
  32. ADMUX |=(1<<REFS0); //interne 5V als Referenzspannung
  33.  
  34.  
  35.  
  36. uint8_t sensor_val;//= PINC & (1<<PINC0) ;
  37.  
  38.  
  39. while(1)
  40. {
  41.  
  42. //Warten
  43. while (!(TWCR & (1 << TWINT)));
  44.  
  45. //Status: Adresse empfangen?
  46. if (TW_STATUS != TW_ST_SLA_ACK) ERROR();
  47.  
  48. //Daten senden, NACK (erwarten des letzten Pakets)
  49. ADCSRA|=(1<<ADSC);//Wandlung starten
  50. while(ADCSRA&(1<<ADSC)); //auf wandlungsende warten
  51. sensor_val=ADC;
  52. TWDR=sensor_val;
  53. TWCR=(1<<TWINT)|(1<<TWEN);
  54.  
  55. //Warten
  56. while (!(TWCR & (1 << TWINT)));
  57.  
  58. //Status: Bestätigung der Daten vom Master?
  59. if(TW_STATUS != TW_ST_DATA_NACK) ERROR();
  60.  
  61. //Slave aktivieren
  62. TWCR = (1 << TWINT) | (1 << TWEA) | (1 << TWEN);
  63.  
  64. Serial.println(sensor_val);
  65.  
  66. }
  67.  
  68.  
  69. }
  70.  
  71. void ERROR()
  72. {
  73. Serial.print ("TWCR: ");
  74. Serial.println (TWCR,BIN);
  75. Serial.print ("TW_STATUS: ");
  76. Serial.println (TW_STATUS, BIN);
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement