
Możecie mi wytłumaczć jak przeliczacie te wartości ADC żeby zaadoptować się do swojego drivera ?
Można ale każdą sztukę trzeba by indywidualnie korygować, czasem dosyć sporo lub dać kod umożliwiający taką korektę po zaprogramowaniu pamięci flash a to znów zabierze znaczną część z 1kB. Jak się steruje diodą przez PWM, to i tak nie można uśpić całkowicie procka ... kiedyś też myślałem jak to zrobić, żeby procek zjadał jak najmniej ale sensu chyba większego nie ma. Udało mi się wycisnąć ponad 120 dni ciągłego światła w najniższym trybie ... wątpię, że komuś zrobi różnicę jakby to było nawet 2x tylegalusz pisze:W takim wypadku można wykorzystać jedno wyjście procesora wraz z rezystorem podciągającym i jakiś jeden rezystor podłączony na stałe do masy
Kod: Zaznacz cały
void Zakrestrybow() //sprawdzanie dopuszczalnego zakresu numeru trybu
{
if (Ntryb > 4) Ntryb = 1;
if (Ntryb < 1) Ntryb = 4;
eeprom_update_byte(&Numertrybu,Ntryb); //zapisz numer trybu jeśli się zmienił
}
void Jasnosci() //ustalanie poziomu jasności według trybu
{
switch(Ntryb)
{
case 1: OCR0B = 2; break; //0,8%
case 2: OCR0B = 64; break; //25%
case 3: OCR0B = 127; break; //50%
case 4: OCR0B = 255; break; //100%
}
}
To wystarczy. Pierwszy określa co ma zrobić program po dojściu do skrajnego trybu, drugi określa wartość jasności dla określonego trybu.michal13031986 pisze:...Czyli jak bym chciał mieć np. 3 lub 5trybów to zamiast 4 wpisać 3 lub 5, oraz dopisać jak coś albo wiadomo skasować jeden wpis odnośnie case?