Forum www.nestor-electronic.pl Strona Główna www.nestor-electronic.pl
Forum sterowników procesorowych- programy BASCOM
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Złe odmierzanie czasu.

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
warrior
Nowy


Dołączył: 14 Lis 2007
Posty: 6

PostWysłany: Sro Lis 14, 2007 4:25 pm    Temat postu: Złe odmierzanie czasu. Odpowiedz z cytatem

Jak ustawić $crystal by 1 sekunda rzeczywiście równała się 1 sekundzie. Chodzi mi konkretnie o złe odmierzanie czasu przy korzystaniu z komendy waitms.

Zaznaczam, że jestem zielony w Bascomie.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Sro Lis 14, 2007 6:34 pm    Temat postu: Odpowiedz z cytatem

nie można uzywać komendy waitms do odmierzania czasu !

Do tego celu sa timery które odmieżają czas bardzo dokładnie (przykład zegara był na płycie)

Jednak jak w pętli bedziesz miał tylko waitms to musi działac poprawnie. Crystal ustawiam na 8000000 bo taki mamy kwarc na płytce

No chyba że załozyłes nowy procek to w nim masz internal oscylator 1 MHZ

Myzle ze pomogłem ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
warrior
Nowy


Dołączył: 14 Lis 2007
Posty: 6

PostWysłany: Sro Lis 14, 2007 8:05 pm    Temat postu: Odpowiedz z cytatem

Na płytce jest Atmega8 "montowana fabrycznie", nic od siebie nie dokładałem oprócz radiatora na stabilizator napięcia.

Program dalej nie działa prawidłowo. A wygląda on tak:

Cytat:

$crystal = 8000000
config PORTB = &B11100111
PORTB = &B1111011

Do
PORTB.1 = 0
Waitms 1000
PORTB.1 = 1

Loop

End


Niby żadna filozofia ale działać nie chce > <
_________________
Jestem zielony jeśli chodzi o Bascoma.
Proszę nie bić za głupie pytania.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Sro Lis 14, 2007 8:13 pm    Temat postu: Odpowiedz z cytatem

Ja bym to zrobił tak:


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator
'o częstotliwości oscylatora
'taktującego mikrokontroler


Config Portb.1 = Output


Do
PORTB.1 = 0
Waitms 1000
PORTB.1 = 1
waitms 1000

Loop

End
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

sprawdz i zobaczysz co będzie a tak na marginesie to jaka jest ta odchyłka w czasie ??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
warrior
Nowy


Dołączył: 14 Lis 2007
Posty: 6

PostWysłany: Sro Lis 14, 2007 8:19 pm    Temat postu: Odpowiedz z cytatem

Teraz działa. Dodanie drugiego waitms 1000 pomogło. Mógłbyś wyjaśnić dlaczego tak jest? Programowałem trochę w VB i C więc mam małe bo małe ale zawsze jakieś pojęcie i wydaje mi się to dziwne.

Odchylenie było takie, że dioda się zapalała i gasła na amen.

Edit:


PORTB.3 to jest switch 1. Switch wciśnięty to będzie logiczne "0" czy "1"
_________________
Jestem zielony jeśli chodzi o Bascoma.
Proszę nie bić za głupie pytania.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
SebiCo
Rozpoczyna


Dołączył: 13 Lis 2007
Posty: 32

PostWysłany: Sro Lis 14, 2007 9:49 pm    Temat postu: Odpowiedz z cytatem

@warrior

Zapalała się, ale nie zdążyłeś tego zauważyć bo trwało to tylko może z parę cykli zegara Very Happy

przy wciśniętym jest "0"
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
LoLu
Zawsze na posterunku


Dołączył: 13 Lis 2007
Posty: 161
Skąd: Poznań (okolice) Nowy Tomyśl

PostWysłany: Czw Lis 15, 2007 4:35 pm    Temat postu: Odpowiedz z cytatem

rafal napisał:
Crystal ustawiam na 8000000 bo taki mamy kwarc na płytce

No chyba że załozyłes nowy procek to w nim masz internal oscylator 1 MHZ

Myzle ze pomogłem ?


Moge prosić o bardziej szczegółowe wyjaśnienie tego ??

Nie wiem jak to zrobiłem ale pierwszego oryginalnego ATMega zamontowanego na płytce zwędziłem nie wiem jak i dlaczego.Umarł na Amen, świeć Panie nad jego duszą! Kupiłem innego o tych samych parametrach i działa!

Czy to co napasałeś rafał oznacza że muszę coś przestawić lub przeprogramować żeby było tak jak w oryginale ??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Czw Lis 15, 2007 6:53 pm    Temat postu: Odpowiedz z cytatem

jak kupiłes nowy procek to ma on fabrycznie ustawiony oscylator na 1 MHZ wewnętrzny

W związku z tym musisz zminić ustawienia oscylatora (opis chyba jest na płycie, ale nie jestem pewien)

Wygląda to tak że, jak włączysz programownaie to masz 3 zakładki z lewej FLASH ROM
po środku EEPROM
po prawej LOCK and Fufe Bits- i ta nas interesuje
klikasz read i procek się zczyta pokaże że to ATMEBGA8 itd.
Odnajdujesz pole oscylator i tam będziesz miał inetrnal oscylator 1 MHz- klikasz na to i wybierasz EXtetrnal oscylator (maja być same jedynki !!!!)
klikasz write Fuse Bits

I cieszysz sie poprawnym działaniem nowego procka

Very Happy
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
LoLu
Zawsze na posterunku


Dołączył: 13 Lis 2007
Posty: 161
Skąd: Poznań (okolice) Nowy Tomyśl

PostWysłany: Pią Lis 16, 2007 1:08 am    Temat postu: Odpowiedz z cytatem

Wowww, faktycznie, odświeżanie lcd wzrosło masakrycznie! bez komend waitms temperatura jest nieczytelna :d

Dzięki, a właśnie miałem zapytać jak zwiększyć odświeżanie LCD.

Za to mam inne ptyanie:

Stwierdziłem że 2x16 znaków to mało i kupiłem lcd 4X16. Pin 1 Lcd to Gnd, Pin 2 to +5V, a 3 pin to kontrast powinien być w zakresie 0-5V. Standardowo płytka nie podaje na ten 3 pin napięcia - przez co kontrast jest byle jaki i ledwo co na nim widać. Jak podałem na niego napiecie kontrast sie poprawił. teraz pytanie - czy można prgramowo regulować napięcie(kontrast) na 3 pinie lcd ?A jeżeli tak to w jaki sposób ?
Wklejanie rezystora miedzy +5V a 3 pin lcd to tez metoda - ale średnio elegancka . Z oryginalnym LCD nie ma problemu bo kontrast jest wyskalowany idealnie pod płytkę testową
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Pią Lis 16, 2007 10:01 am    Temat postu: Odpowiedz z cytatem

kontras jest regurowany potencjoomdetrem na płytce !!

WIEC NIE WIEM W CZYM PROBLEM ??
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
LoLu
Zawsze na posterunku


Dołączył: 13 Lis 2007
Posty: 161
Skąd: Poznań (okolice) Nowy Tomyśl

PostWysłany: Pią Lis 16, 2007 1:31 pm    Temat postu: Odpowiedz z cytatem

Kurcze nie wiedziałem Very Happy
_________________
Od kiedy powstało GOOGLE pytania nie maja sensu ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
seba618
Nowy


Dołączył: 07 Gru 2007
Posty: 3
Skąd: Kalisz

PostWysłany: Sob Gru 08, 2007 11:53 pm    Temat postu: Odpowiedz z cytatem

Jakim programem można zmienić te fuse bity ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
LoLu
Zawsze na posterunku


Dołączył: 13 Lis 2007
Posty: 161
Skąd: Poznań (okolice) Nowy Tomyśl

PostWysłany: Sob Gru 08, 2007 11:58 pm    Temat postu: Odpowiedz z cytatem

Bascom'em masz 2 posty wyżej gdzie to sie robi
_________________
Od kiedy powstało GOOGLE pytania nie maja sensu ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
szymonnn
Nowy


Dołączył: 30 Lip 2008
Posty: 1

PostWysłany: Sro Lip 30, 2008 8:54 pm    Temat postu: fuse bit i atmega 168 Odpowiedz z cytatem

Witam . Mam pytanko czy w atmega 168 trzeba ustawic te fuse bity tak jak dla atmega8? po wgraniu wersji 4.4 na atmege 168 program dziala bardzo wolno, dokladnie tak jak działał w innej wersji na atmega 8 z zle ustawionym oscylatorem.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
rafal
Site Admin


Dołączył: 08 Lis 2007
Posty: 1180
Skąd: Olkusz

PostWysłany: Sro Lip 30, 2008 9:50 pm    Temat postu: Odpowiedz z cytatem

muszisz poustawiac fuse, ale ktoś już chyba opisywał jak je ustawić- poszukaj na forum
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.nestor-electronic.pl Strona Główna -> Pomoc w programowaniu BASCOM Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


Powered by phpBB © 2001, 2005 phpBB Group