Chce wyznaczyÄ czas Ĺadowania kondensatora w obowodzie RC pomiÄdzy punktami 0.25RC i 0.5RC. Atmega128 ma takie cos ze jedna z koncowek (ain1) mozna przelaczac jezeli adc jest wylaczony, na ktorys z portow analogowych i moj pomysl polega na tym ze na dwa rozne kanaly portu analgowego sa podpiete napiecia z dzielnikow odpowiadajace 0.25RC i 0.5Rc przy Ucc = 5V. Pomiar ma wyglÄ
daÄ tak zaĹÄ
czam napiÄcie z pinu portu B do obwodu RC zeby zaczac ladowac kondensator, nastepnie ( noga kondensatora jest podczepiona do Ain0, a Ain1 jest podlaczona do "0.25RC") gdy napiecie na kondesatorze przekroczy wartosc napiecia na pinie AiN1 uruchamia sie przerwanie komparatora i startuje timer(zerujac ilosc przepelnien) i przelacza Ain1 na '0.5 RC". Gdy kondensator przekroczy nowe napiecia wowczas wylaczam timer i wyswietlam w main ilosc przepellnien timera. NapisaĹem kod, ale z jakiegos powodu dostaje ze ze przepelnien timera miedzy 0.25RC, a 0.5RC jest 0 O_O. OgĂłlnie rezystor w obwodzie RC = 100k, kondensator 100n, timer leci na czestotliwosci 1.8432MHz, a TNCT1 w timierze ustawiam na FF00 przy kazdym przepelnienu wiec liczy tylko 256 taktow. Wiec miedzy 0.25RC, a 0.5RC powinien spokojnie naliczyc kilkadziesiat przepelnien. Podrzucam kod
main.c:
ancomp.c
tim1.c:
main.c:
Kod: C / C++
ancomp.c
Kod: C / C++
tim1.c:
Kod: C / C++