| 1 | //***************************************************************
 | 
| 2 | uint16_t overflow =0;
 | 
| 3 | uint16_t LED_Freq = 3125;
 | 
| 4 | 
 | 
| 5 | ISR(TIMER0_OVF_vect)
 | 
| 6 | {
 | 
| 7 |   if (overflow <= LED_Freq)
 | 
| 8 |   {
 | 
| 9 |     overflow ++;
 | 
| 10 |   }
 | 
| 11 |   else
 | 
| 12 |   {
 | 
| 13 |     PORTA ^= (1<<PA4);
 | 
| 14 |     overflow =0;
 | 
| 15 |   }
 | 
| 16 | }
 | 
| 17 | //***************************************************************
 | 
| 18 | 
 | 
| 19 | 
 | 
| 20 | int main (void)
 | 
| 21 | {
 | 
| 22 |   uart_init();
 | 
| 23 |   I2C_Init(F_SCL);
 | 
| 24 | 
 | 
| 25 |   lcd_init(Display_1);
 | 
| 26 |   lcd_init(Display_2);
 | 
| 27 |   
 | 
| 28 |   lcd_light(Display_1, true);
 | 
| 29 |   lcd_light(Display_2, true);
 | 
| 30 |       
 | 
| 31 | //******** Timer 0 für Funktion des IC's Laufes**********************
 | 
| 32 |   TIMSK |= (1<<TOIE0);  //Overflow Interrupt aktivieren
 | 
| 33 |   TCCR0 |= (1<<CS01);    // Prescaler auf 1 setzen, Takt = 8MHz  
 | 
| 34 |   sei();
 | 
| 35 |   
 | 
| 36 |   
 | 
| 37 | /***Search Tempsensor*********************************************************************************************************************/
 | 
| 38 |   Dallas_suchen_an();  
 | 
| 39 | /***Search Tempsensor end*****************************************************************************************************************/
 | 
| 40 | /***Feste Seriennummer********************************************************************************************************************/
 | 
| 41 |   int zaehler = 2;
 | 
| 42 |   for (int e = 0; e <8; e++)
 | 
| 43 |   {
 | 
| 44 |     Tempfuehler1[e] = FeuhlerArray[1][zaehler+1];
 | 
| 45 |     Tempfuehler2[e] = FeuhlerArray[2][zaehler+1];
 | 
| 46 |     Tempfuehler3[e] = FeuhlerArray[3][zaehler+1];    
 | 
| 47 |     Tempfuehler4[e] = FeuhlerArray[4][zaehler+1];
 | 
| 48 |     Tempfuehler5[e] = FeuhlerArray[5][zaehler+1];
 | 
| 49 |     Tempfuehler6[e] = FeuhlerArray[6][zaehler+1];    
 | 
| 50 |     Tempfuehler7[e] = FeuhlerArray[7][zaehler+1];
 | 
| 51 |     Tempfuehler8[e] = FeuhlerArray[8][zaehler+1];
 | 
| 52 |     Tempfuehler9[e] = FeuhlerArray[9][zaehler+1];    
 | 
| 53 |     Tempfuehler10[e] = FeuhlerArray[10][zaehler+1];
 | 
| 54 |     Tempfuehler11[e] = FeuhlerArray[11][zaehler+1];
 | 
| 55 |     Tempfuehler12[e] = FeuhlerArray[12][zaehler+1];
 | 
| 56 |     Tempfuehler13[e] = FeuhlerArray[13][zaehler+1];
 | 
| 57 |     Tempfuehler14[e] = FeuhlerArray[14][zaehler+1];
 | 
| 58 |     zaehler = zaehler+ 1;    
 | 
| 59 |   }
 | 
| 60 | /***Vergebene ID Nummer*******************************************************************************************************************/
 | 
| 61 |   ID1 = FeuhlerArray[1][0];
 | 
| 62 |   ID2 = FeuhlerArray[2][0];
 | 
| 63 |   ID3 = FeuhlerArray[3][0];
 | 
| 64 |   ID4 = FeuhlerArray[4][0];
 | 
| 65 |   ID5 = FeuhlerArray[5][0];
 | 
| 66 |   ID6 = FeuhlerArray[6][0];
 | 
| 67 |   ID7 = FeuhlerArray[7][0];
 | 
| 68 |   ID8 = FeuhlerArray[8][0];
 | 
| 69 |   ID9 = FeuhlerArray[9][0];  
 | 
| 70 |   ID10 = FeuhlerArray[10][0];
 | 
| 71 |   ID11 = FeuhlerArray[11][0];
 | 
| 72 |   ID12 = FeuhlerArray[12][0];
 | 
| 73 |   ID13 = FeuhlerArray[13][0];
 | 
| 74 |   ID14 = FeuhlerArray[14][0];
 | 
| 75 | /*****************************************************************************************************************************************/
 | 
| 76 | /***while Schleife************************************************************************************************************************/
 | 
| 77 |   uint8_t Send1, Send;
 | 
| 78 |   char test =0;
 | 
| 79 |   
 | 
| 80 | int FuehlerID, FuehlerArrayID;
 | 
| 81 |   
 | 
| 82 |   while(1)
 | 
| 83 |   {
 | 
| 84 | 
 | 
| 85 | 
 | 
| 86 | 
 | 
| 87 | /*****Ausgänge I2C-Bus setzten************************************************************************************************************/
 | 
| 88 | I2C_Start_Wait(Ausgaenge, I2C_WRITE);
 | 
| 89 | I2C_Write(test);
 | 
| 90 | I2C_Stop();
 | 
| 91 | 
 | 
| 92 | /*****Ausgänge I2C-Bus setzten ende*******************************************************************************************************/
 | 
| 93 | /*****Eingänge I2C-Bus lesen**************************************************************************************************************/
 | 
| 94 | 
 | 
| 95 | I2C_Start_Wait(Eingaenge, I2C_READ);
 | 
| 96 | Send1= I2C_ReadAck();
 | 
| 97 | I2C_Stop();
 | 
| 98 | /*****Eingänge I2C-Bus lesen ende*********************************************************************************************************/    
 | 
| 99 | 
 | 
| 100 | itoa(Send1,test,10);
 | 
| 101 | /*if (Send1 == 255)
 | 
| 102 | {
 | 
| 103 |   Send1 =0;
 | 
| 104 | }
 | 
| 105 | Send1 = Send1 +1 ;
 | 
| 106 | */
 | 
| 107 | 
 | 
| 108 |     Bus_Reset();
 | 
| 109 |     Byte_Schreiben(Skip_Rom);
 | 
| 110 |     Byte_Schreiben(Convert_T);
 | 
| 111 | 
 | 
| 112 |     Temperatur_Messung(Temp1, Tempfuehler1, ID1);
 | 
| 113 |     Temperatur_Messung(Temp1, Tempfuehler2, ID2);
 | 
| 114 |     Temperatur_Messung(Temp1, Tempfuehler3, ID3);
 | 
| 115 |     Temperatur_Messung(Temp1, Tempfuehler4, ID4);
 | 
| 116 |     Temperatur_Messung(Temp1, Tempfuehler5, ID5);
 | 
| 117 |     Temperatur_Messung(Temp1, Tempfuehler6, ID6);
 | 
| 118 |     Temperatur_Messung(Temp1, Tempfuehler7, ID7);
 | 
| 119 |     Temperatur_Messung(Temp1, Tempfuehler8, ID8);
 | 
| 120 |     Temperatur_Messung(Temp1, Tempfuehler9, ID9);
 | 
| 121 |           Temperatur_Messung(Temp_Zimmer, Tempfuehler10, ID10);
 | 
| 122 |           Temperatur_Messung(Temp_Sonne, Tempfuehler11, ID11);
 | 
| 123 |           Temperatur_Messung(Temp_Schatten, Tempfuehler12, ID12);
 | 
| 124 |           Temperatur_Messung(Temp_Photovoltaik, Tempfuehler13, ID13);
 | 
| 125 |     Temperatur_Messung(Temp1, Tempfuehler14, ID14);
 | 
| 126 | 
 | 
| 127 |     
 | 
| 128 |     lcd_gotolc(Display_2, 1,1);
 | 
| 129 |     lcd_print(Display_2, "Zimmer:");
 | 
| 130 |     lcd_gotolc(Display_2, 1,12);
 | 
| 131 |     lcd_print(Display_2, Temp_Zimmer);
 | 
| 132 | 
 | 
| 133 |     lcd_gotolc(Display_2, 2,1);
 | 
| 134 |     lcd_print(Display_2, "Sonne:");
 | 
| 135 |     lcd_gotolc(Display_2, 2,12);
 | 
| 136 |     lcd_print(Display_2, Temp_Sonne);
 | 
| 137 | 
 | 
| 138 |     lcd_gotolc(Display_2, 3,1);
 | 
| 139 |     lcd_print(Display_2, "Schatten:");
 | 
| 140 |     lcd_gotolc(Display_2, 3,12);
 | 
| 141 |     lcd_print(Display_2, Temp_Schatten);
 | 
| 142 | 
 | 
| 143 |     lcd_gotolc(Display_2, 4,1);
 | 
| 144 |     lcd_print(Display_2, "Photo:");
 | 
| 145 |     lcd_gotolc(Display_2, 4,12);
 | 
| 146 |     lcd_print(Display_2, Temp_Photovoltaik);
 | 
| 147 |   }
 | 
| 148 | 
 | 
| 149 | }
 |