napisałem sterownik i chcę wpleść strobo, ale jak?

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!
snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 17 lis 2009, 12:17

Jak znasz obsługę PWM i timerów to nie wiem o co dokładnie pytasz. Postępujesz tak jak wyżej sam napisałeś.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 lis 2009, 12:19

snow pisze:Jak znasz obsługę PWM i timerów to nie wiem o co dokładnie pytasz.
chodzi o to że mogę napisać soft, bo przecież napisałem do obsługi śwaiteł stop - wstecz, tylko wiesz, soft a soft to różnica. można napisać program ważący 3kb i można napisać ten sam program ważący 1,5kb, tak? ktoś kto siedzi dłużej w temacie napisze ładniejszy i sprawniej działający. i tylko o to mi chodzi.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 17 lis 2009, 19:24

matrix,
Jak byś popylał 8 milionów razy na sekundę do okoła swojego pokoju i ktoś by ci kazał włączyć i wyłączyć światło w pokoju co np 7,9 miliona kroków to myślę że na pewno byś zdążył.

Napisze Ci ten soft tylko podrzucę stara do fryzjera na 19:50 mojego czasu.


Zmienione
pomyliłem sie w godzinach nie na 19 tylko na 18:50 mojego czasu czyli dodja ogdizne do swojego
Ostatnio zmieniony 17 lis 2009, 20:33 przez Pikczu, łącznie zmieniany 2 razy.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 17 lis 2009, 19:51

nie kumam tego timera. skonfigurowałem sobie timer0 tak:

Kod: Zaznacz cały

config timer0 = TIMER , Prescale = 64
wpisałem wartość początkową 6 co da mi przerwanie według kalkulatora przerwań co 2ms.
wprowadziłem zmienną zwiekszam_strobo jako byte i co przerwanie zwiększam jej wartość.
w pętli głównej sprawdzam jaka ma wartość powyższa zmienna i odpowiednio reaguję, ale to nie chce działać. ocb?
Pikczu pisze:Napisze Ci ten soft tylko podrzucę stara do fryzjera na 19:50 mojego czasu.
a która to będzie mojego czasu? bo na noc do pracy idę.

ogólnie na[pisałem tak:

Kod: Zaznacz cały

on timer0 zwiekszam_strobo
a etykieta wygląda tak:

Kod: Zaznacz cały

zwiekszam_strobo:
incr zw_str
if zw_str = 170 then
zw_str = 0
end if
load timer0 , 6
return
a w programie sprawdzam tak:

Kod: Zaznacz cały

if zw_str = 0 then
    reset strobol
    end if

    if zw_str = 10 then
    set strobol
    end if

    if zw_str = 110 then
    reset strobol
    end if

    if zw_str = 120 then
    set strobol
    end if
ale to nie działa. znaczy dioda miga ale nie według wyliczonych czasów i nie jest to powtarzalne.

ODPOWIEDZ