Witam. Jestem początkującym w programowaniu mikrokontrolerów ale dzięki Pani Mirkowi K. wszystko idzie w miarę dobrze i do tej pory nie miałem problemów.
Natknąłem sie teraz na mały kłopot.
Na początek podpiąłem atmege8 i napisałem program do sterowania paroma diodami - poszło bez większych problemów.
Potem dołaczyłem podwójny wyświetlacz 7-segmentowy - na początku sterowałem siedmioma wyjściami osobno dla każdego elementu, a potem podpiąłem układ 7447 (dwie sztuki) by ograniczyc liczbe wyjśc wymaganych do sterowania tym wyswietlaczem. Napisałem fukncje o nazwię "liczba (a,b)" która po podaniu argumentu wrzuca mi na segmenty liczbe np: liczba (2,5) wysiwetli mi 25.
Do tej pory wszystko mi szło w miare ładnie. Troche czasochłonne ale satysfakcja i zabawa niesamowita.
Postanowiłem podłączyć czujnik temperatury ds18b20 i sprawić by na wyświetlaczu wyświetlała mi się temperatura pokojowa (tylko całkowita część temperatury bez części dziesiętnych np:25 stopni).
Napisałem program korzystając z wielu proadników i dokumentacji i juz po 10 godzinach walki:) udało mi sie zainicjować połączenie z czujnikiem i zczytać temperature. Problem pojawa się gdy chce ją wrzucić tylko w części całkowitej na podwójny wiświetlacz 7-segmentowy. Pomyślałem, że jeśli mam liczbe w postaći np 25.634 to wystarczy, że podziele przez dziesięc i zaokrągle w dół i wtedy otrzymam liczbe dziesiątek którą na pierwszy segment , a następnie by uzyskac jedności uzyje funkcji % by uzyskać reszte z dzielenia przez dziesięć.
Niestety na wyswietlaczu wywala mi głupoty. Prosze o pomoc i łagodność wobec mnie.
Poniżej kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
za jakąkolwiek pomoc bede bardzo wdzięczny bo mase godzin na to straciłem.
oto zdjęcie mojego "projektu";)