Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

pytanie o symulator

Awatar użytkownika
zebro
-
-
Posty: 5
Rejestracja: 18 maja 2008, o 21:15
Lokalizacja: Szczecin

pytanie o symulator

Postautor: zebro » 18 maja 2008, o 21:19

Witam

Zaczynam sie uczyc tego jezyka i nie wiem gdzie robie blad. Napisalem prosty programik. W symulatorze z tego co wiem powinny zapalac sie i gasnac "diody" lecz po wlaczeniu symulacji ( przycisk PLAY ) nie zapalaja ani nie gasna.Gdzie robie blad?

Kod: Zaznacz cały

Do Set Portb.1 Waitms 1 Set Portb.2 Waitms 1 Set Portb.3 Waitms 1 Set Portb.4 Waitms 1 Reset Portb.1 Waitms 1 Reset Portb.2 Waitms 1 Reset Portb.3 Waitms 1 Reset Portb.4 Loop

RcTomek
-
-
Posty: 357
Rejestracja: 18 lip 2005, o 17:28
Lokalizacja: Głogów / Wrocław

Postautor: RcTomek » 19 maja 2008, o 14:30

A skonfigurowałeś potrzebne porty I/O jako wyjścia?

Awatar użytkownika
zebro
-
-
Posty: 5
Rejestracja: 18 maja 2008, o 21:15
Lokalizacja: Szczecin

Postautor: zebro » 19 maja 2008, o 15:09

Tak ustawilem je jako wyjscia. Problem jest w tym ze nie pokazuje na bierzaco stanu wyjsc, dopiero po wcisnieciu pauzy. Nie wiem czy tak powinno byc. Gdzie mozna znalezc jakis kurs bascom nie liczac kursu z elektroniki praktycznej?

Kod: Zaznacz cały

$sim Config Portb.3 = Output Config Portb.2 = Output Config Portb.1 = Output Config Portb.0 = Output Do Set Portb.0 Waitms 10 Set Portb.1 Waitms 10 Set Portb.2 Waitms 10 Set Portb.3 Waitms 10 Reset Portb.0 Waitms 10 Reset Portb.1 Waitms 10 Reset Portb.2 Waitms 10 Reset Portb.3 Waitms 10 Loop

RcTomek
-
-
Posty: 357
Rejestracja: 18 lip 2005, o 17:28
Lokalizacja: Głogów / Wrocław

Postautor: RcTomek » 19 maja 2008, o 15:46

Dawno nie korzystałem z Bascom'a, ale jeżeli konfigurujesz poszczególne końcówki jako we/wy, to piszesz Config Pinb.1 = Output. Jeżeli jest to cały port, to Config Portb = Output.
Spróbuj też podejrzeć zawartości rejestrów przy pomocy symulacji krokowej, wtedy możesz tymczsowo wyłączyć instrukcje Waitms. Swoją drogą w praktyce 10ms odstępu to trochę mało.

Awatar użytkownika
zebro
-
-
Posty: 5
Rejestracja: 18 maja 2008, o 21:15
Lokalizacja: Szczecin

Postautor: zebro » 21 maja 2008, o 11:06

Jak w symulatorze zasymulowac stan niski na wyjsciu ukladu np. pinb.4 tak zeby na wyjsciu np pinb.0 pojawil sie stan niski. Co oznaczaja 2 kolumny diod?

Przyklad programu w zalaczniku
Załączniki
bascom1.JPG

RcTomek
-
-
Posty: 357
Rejestracja: 18 lip 2005, o 17:28
Lokalizacja: Głogów / Wrocław

Postautor: RcTomek » 21 maja 2008, o 22:55

Masz kolejny błąd w programie. Rejestru PINx nie zapisujemy, można jedynie odczytać z niego wartości (rzeczywisty stan końcówki). Powinno być Set Portb.0 (oraz tak samo w pozostałych przypadkach, kiedy chcesz programowo zmienić stan końcówki). Poprawiony listing:

Kod: Zaznacz cały

$sim Config Pinb.0 = Output Config Pinb.4 = Input Set Portb.4 'umieszczanie tego w petli glownej nie ma sensu 'wystarczy skonfigurowac tylko raz Do Set Portb.0 If Pinb.4 = 0 Then Portb.0 = 0 Waitms 200 'tak samo te dwie instrukcje sa tu zbedne 'Portb.4 konfigurujemy przed petal do...loop 'w wyniku zapetlenia Set Portb.0 i tak zostanie wykonane 'wiec umieszczanie tej instrukcji po raz drugi mija sie z celem Loop

Awatar użytkownika
zebro
-
-
Posty: 5
Rejestracja: 18 maja 2008, o 21:15
Lokalizacja: Szczecin

Postautor: zebro » 22 maja 2008, o 10:23

A jak zasymulowac niski stan na wyjsciu Pinb.4 . W rzeczywistosci zwarl bym ja z masa a w programie jak to zrobic?

Awatar użytkownika
Grysek
-
-
Posty: 18
Rejestracja: 14 kwie 2008, o 13:43
Lokalizacja: Limanowa

Postautor: Grysek » 23 maja 2008, o 10:06

kilkasz na "diode" oznaczającą dany pin tak żeby zgasła

Pozdrawiam

Awatar użytkownika
zebro
-
-
Posty: 5
Rejestracja: 18 maja 2008, o 21:15
Lokalizacja: Szczecin

Postautor: zebro » 23 maja 2008, o 20:29

kilkasz na "diode" oznaczającą dany pin tak żeby zgasła

Pozdrawiam
A w ktorej kolumnie? Lewej czy prawej? Reakcja po wcisnieciu diody w jednej jak i w drugiej kolumnie ma inny skutek i zadny nie jest taki jak wynika z programu.

kenaJ
-
-
Posty: 29
Rejestracja: 13 lis 2006, o 22:31
Lokalizacja: Kraków

Postautor: kenaJ » 13 cze 2008, o 14:48

Witam!

Jeżeli będziesz wgrywał program do procesora, to opóźnienie rzędu 1 czy 10 ms jest za małe, nie zauważysz tego. Proponuję zacząć od 500 ms w górę, ja tak uczyłem się BASCOM'a. I nie zapomnij o $sim.

Z literatury polecam: Marcin Wiązania "Programowanie mikrokontrolerów AVR w języku Bascom".

Pozdrawiam!

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 41 gości