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!
-
misha89
- Użytkownik
- Posty: 150
- Rejestracja: 06 lip 2006, 17:15
- Lokalizacja: Ryki
-
Kontakt:
Post
autor: misha89 » 28 gru 2006, 22:04
Witam
Mam problem z ktorym nie moge sobie dac rady. Zrobilem uklad jak na zdjeciu (czarny kolor), zaprogramowalem zalaczonym programem. Jest to bardzo prosty system zbudowany by sprawdzic dzialanie samodzielnie zrobionej plytki z atmega16. Problem polega na tym ze uklad po wlaczenu robi co chce, praktycznie wogole nie reaguje na przycisk. Jednak wszystko zaczyna dzialac prawidlowo gdy podlacze woltomierz (kolor czerwony). Zapewne to wszystko powoduja zaklucenia ale jak to mozliwe ze dzieki woltomierzowi sie ich pozbywam? Prosze pomozcie bo ja sie zalamuje
Program:
Kod: Zaznacz cały
Config Porta = &B00111111
Porta = &B1111111
$crystal = 8000000
Dim A As Byte
A=0
Cls
Lcd "test"
Wait 1
Cls
Do
If Pina.7 = 0 Then
Waitms 20
If Pina.7 = 0 Then
Incr A
Cls
Lcd A
End If
End If
Loop
End
-
Załączniki
-
- zalacznik.GIF
- (4.56 KiB) Pobrany 1761 razy
-
radzio
- Użytkownik
- Posty: 573
- Rejestracja: 07 gru 2004, 23:06
- Lokalizacja: Sosnowiec
-
Kontakt:
Post
autor: radzio » 28 gru 2006, 22:11
Przyjrzyj się drugiej linijce - zapisujesz tylko 7 jedynek, a tej ósmej, najwazniejszej nie. W wyniku tego PA7 nie ma podciagania. Po podłaczeniu woltomierza PA7 jest podciagnięte przez jego rezystancję wewnętrzną.
-
ZbeeGin
Post
autor: ZbeeGin » 28 gru 2006, 22:13
misha1024 pisze:Config Porta = &B00111111
Porta = &B1111111
Czyż nie powinno być:
Config Porta = &B00111111
Porta = &B
11111111
Nie masz włączonego układu pull-up. Nie dziw się zatem, że voltomierz dostarcza napięcia +5V pomniejszonego o spadek na rezystancji dzielnika, wymuszając tym samym stan wysoki na końcówce portu - tak jak robi to układ pull-up.
[ Dodano: 2006-12-28, 22:14 ]
Radzio - wygrałeś o "włos".

-
misha89
- Użytkownik
- Posty: 150
- Rejestracja: 06 lip 2006, 17:15
- Lokalizacja: Ryki
-
Kontakt:
Post
autor: misha89 » 28 gru 2006, 23:35
Nie zauwazylem tego. Jutro to sprawdze. Dziekuje bardzo Wam obu

-
Aro
- Użytkownik
- Posty: 677
- Rejestracja: 30 paź 2006, 18:49
- Lokalizacja: Świerczyniec | Wrocław
-
Kontakt:
Post
autor: Aro » 29 gru 2006, 9:58
Z mojego doświadczenia wiem że pull-up nie jest najlepszym rozwiązaniem dla więcej niż jednego przycisku. Po prostu przy naciśnięciu jednego przycisku cały port schodzi w stan niski. Dla kilku przycisków lepiej jest podciągnąc każdy do VCC przez rezystor.
-
misha89
- Użytkownik
- Posty: 150
- Rejestracja: 06 lip 2006, 17:15
- Lokalizacja: Ryki
-
Kontakt:
Post
autor: misha89 » 29 gru 2006, 14:07
Aro jaka wartosc powinien miec ten rezystor?
-
ZbeeGin
Post
autor: ZbeeGin » 29 gru 2006, 18:59
Wartość bezpieczna to około 1k-2.2k. Jednak jak dodasz zapomnianą jedynkę w instrukcji PORT = to włączysz wewnętrzne podciąganie (odpowiednio spolaryzowany tranzystor MOSFET) które powinno wystarczyć.