Problemy z wyświetlaczem widmowym - początki w Bascomie.

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Pev4
-
Posty: 44
Rejestracja: 06 sie 2007, 19:26
Lokalizacja: Ostrowiec Św.
Kontakt:

Post autor: Pev4 » 05 lis 2007, 18:04

Wiem jak to zrobić:) trzeba napisać podprogram, który mierzy czas obrotu(cykliczne impulsy z fototranzystora), dzieli przez sześćdziesiąt i wynik wpisuje w miejscu Waitus=wynik.
czy procesor może sam sobie edytować flash? czy jest możliwe wykonanie powyższego podprogramu?

ZbeeGin

Post autor: ZbeeGin » 05 lis 2007, 18:20

Pev4 pisze:czy procesor może sam sobie edytować flash?
Może, ale to nie takie proste. Lepiej wykorzystać jakąś pętlę programową lub z wykorzystaniem licznika i za pomocą zmiennej zmieniać czas opóźnienia.

Pev4
-
Posty: 44
Rejestracja: 06 sie 2007, 19:26
Lokalizacja: Ostrowiec Św.
Kontakt:

Post autor: Pev4 » 05 lis 2007, 19:24

Super :smile:
Dziękuję za pomoc. Teraz tylko muszę doczytać jak odmierzać czas od impulsu do impulsu :wink: Pozdrawiam.

ZbeeGin

Post autor: ZbeeGin » 05 lis 2007, 19:28

Pev4 pisze:Dziękuję za pomoc. Teraz tylko muszę doczytać jak odmierzać czas od impulsu do impulsu
Są dwie metody:
1. Stały czas pomiaru i zliczenie impulsów z czujnika. Po podzieleniu tej wartości przez czas pomiaru otrzymasz dane dotyczące czasu pomiędzy dwoma impulsami.
2. Zliczenie czasu pomiędzy dwoma impulsami korzystając licznika, który włączy się przy pierwszym impulsie, a wyłączy przy drugim.
W obu przypadkach będziesz musiał skorzystać z przerwań. Osobiście wybrałbym tą pierwszą metodę - gdyż lepiej uśredni otrzymany czas.

Pev4
-
Posty: 44
Rejestracja: 06 sie 2007, 19:26
Lokalizacja: Ostrowiec Św.
Kontakt:

Post autor: Pev4 » 05 lis 2007, 23:13

Jeszcze nie umiem obsługiwać przerwań :sad:
Pierwsza metoda wydaje mi się łatwiejsza. Jako czas ustaliłbym 1s... ale chyba czas dzielimy przez impulsy, nie odwrotnie?
Jeśli chcę wykorzystać przerwanie, to znaczy że muszę fotodiodę podłączyć do wejścia INT?(dla AtTiny2313 PD.2) czy może zostać przy PD.0 a programem się ustali port?
Czy mogę liczyć na wsparcie w napisaniu tego programu z waszej strony? Im więcej uczę się Bascoma, tym jest on dla mnie trudniejszy... Dziękuję za pomoc i pozdrawiam.

ZbeeGin

Post autor: ZbeeGin » 06 lis 2007, 6:55

Pev4 pisze:Pierwsza metoda wydaje mi się łatwiejsza. Jako czas ustaliłbym 1s... ale chyba czas dzielimy przez impulsy, nie odwrotnie?
1s to za długo nieco - 100ms będzie dobrze. Poza tym trzeba odczekać by silnik nabrał obrotów. Co do dzielenia to masz rację, piszę zwykle w formie umownej.
Jeśli chcę wykorzystać przerwanie, to znaczy że muszę fotodiodę podłączyć do wejścia INT?(dla AtTiny2313 PD.2) czy może zostać przy PD.0 a programem się ustali port?
Musiałbyś skorzystać z INT0 lub INT1. PD.0 nie można skonfigurować jako źródło przerwań, nawet tych z grupy PCInt (Pin Change Interrupt).

Pev4
-
Posty: 44
Rejestracja: 06 sie 2007, 19:26
Lokalizacja: Ostrowiec Św.
Kontakt:

Post autor: Pev4 » 07 lis 2007, 20:48

Dziękuję wszystkim za pomoc, program już skończyłem pisać [jeszcze nie wiem z jakim skutkiem :wink: ]. Obecnie program czeka na próby (dopiero składam układ).
Pozdrawiam i życzę pomyślnego nowego roku.

ODPOWIEDZ