Aktywne Wpisy
Merck_1ae7 +506
Beszczebelny +221
Do czego to doszło, że 10-letnie volvo wyglądające jak gówno są wystawiane za 100 000zł? xD Jakbym to auto widział na parkingu to pomyślalbym, że jest warte max 15tys xD Do tego środek gorszy niż w bmw i audi z lat ~2005. To jakaś sekta volvowa, że udają, że to jest tyle warte czy o co chodzi xD
#motoryzacja #samochody
#motoryzacja #samochody
#include
#include
#include
#include
#include "lcd44780.h"
#include "1Wire/ds18x20.h"
void display_temp(uint8_t x);
uint8_t czujniki_cnt; /* ilość czujników na magistrali */
volatile uint8_t s1_flag; /* flaga tyknięcia timera co 1 sekundę */
volatile uint8_t sekundy; /* licznik sekund 0-59 */
uint8_t subzero, cel, cel_fract_bits;
int main(void) {
//DDRA |= (1<99) { /* gdy licznik ms > 99 (minęła 1 sekunda) */
s1_flag=1; /* ustaw flagę tyknięcia sekundy */
sekundy++; /* zwiększ licznik sekund */
if(sekundy>59) sekundy=0; /* jeśli ilość sekund > 59 - wyzeruj */
cnt=0; /* wyzeru licznik setnych ms */
}
}
Komentarz usunięty przez autora
if( DS18X20OK == DS18X20readmeas(gSensorIDs[1], &subzero, &cel, &celfractbits) ) displaytemp(9);
else {
lcdlocate(1,9);
lcdstr(" error ");
}
Trochę chaotycznie to opisałeś ale jeśli dobrze rozumiem to chodzi o ten fragment. Gdy masz wpięty jeden czujnik to pierwszy odczyt wykonuje się prawidłowo a przy drugim wywala błąd i komunikuje go w 1,9
if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[0], &subzero, &cel, &cel_fract_bits) ) display_temp(0);
else {
lcd_locate(1,0);
lcd_str(" error "); /* wyświetlamy informację o błędzie jeśli np brak czujnika lub błąd odczytu */
}
/* dokonujemy odczytu temperatury z pierwszego czujnika o ile został wykryty */
if( DS18X20_OK == DS18X20_read_meas(gSensorIDs[1], &subzero, &cel, &cel_fract_bits) )
uint8_t search_sensors(void)
{
uint8_t i;
uint8_t id[OW_ROMCODE_SIZE];
uint8_t diff, nSensors;
nSensors = 0;
for( diff = OW_SEARCH_FIRST;
diff != OW_LAST_DEVICE && nSensors < MAXSENSORS ; )
{
DS18X20_find_sensor( &diff, &id[0] );
if( diff == OW_PRESENCE_ERR ) {
break;
}
if( diff == OW_DATA_ERR ) {
break;
}
for (i=0;i<OW_ROMCODE_SIZE;i++) gSensorIDs[nSensors][i]=id[i];
nSensors++;
}
return nSensors;
}
/* co trzy sekundy gdy reszta z dzielenia modulo 3 == 0 sprawdzaj ilość dostępnych czujników */
/*if( 0 == (sekundy%3) ) {
uint8_t *cl=(uint8_t*)gSensorIDs; // pobieramy wskaźnik do tablicy adresów czujników
for( uint8_t i=0; i<MAXSENSORS*OW_ROMCODE_SIZE; i++) *cl++ = 0; // kasujemy całą tablicę
czujniki_cnt = search_sensors(); // ponownie wykrywamy ile jest czujników i zapełniamy tablicę
lcd_locate(0,8);
//lcd_int( czujniki_cnt ); //
mam 20c swieci 1-wsza dioda
mam 30c swieci 2-ga dioda(pierwsza tez)
40c swieci 3-cia dioda +1-wsza i 2-ga
itp. do powiedzmy 80c?