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:

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

Post autor: Pev4 » 02 lis 2007, 22:42

Witam.
Bascoma uczę się niecały miesiąc, więc bardzo Was proszę o pomoc w kilku szczegółach.
Projektuję właśnie wyświetlacz widmowy i chcę zrobić synchronizację diodą IR i fototranzystorem, tak aby obraz stał w miejscu, lub powoli obracał się w prawo. Obraz składa się z 60 "sekwencji"(nie wiem jak się to nazywa, po prostu jedna pionowa linia) i chciałbym żeby to się rozłożyło na 360 stopni, czyli jeden pełny obrót. Nie mam pojęcia jak napisać ten fragment programu.
mam problem również z doborem mikroprocesora. chciałbym żeby miał ponad 20 wyjść co najmniej 8k pamięci i żeby dał się zaprogramować programatorem STK200/300 i darmowym programem.
Bardzo Was proszę o pomoc, początki są naprawdę trudne. Z góry dziękuję za wyrozumiałość, pozdrawiam.

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 02 lis 2007, 23:09

Jeśli chcesz wykorzystać całe 8k pamięci (zawartej na przykład w ATmega8 lub ATmega162) to musisz mieć pełną wersję BASCOM'a. Wersja DEMO posiada ograniczenie kodu wynikowego do 4kB.
Może na początek zamiast synchronizowania przy użyciu fototranzystora to poeksperymentujesz z czasem wyświetlania poszczególnych sekwencji? Jeżeli tylko masz zapewnioną stałą prędkość (kątową) obracania układem to na pewno zaobserwujesz efekty! Pozdrawiam i życzę powodzenia

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

Post autor: Pev4 » 02 lis 2007, 23:17

gwozdex pisze:Jeśli chcesz wykorzystać całe 8k pamięci (zawartej na przykład w ATmega8 lub ATmega162) to musisz mieć pełną wersję BASCOM'a. Wersja DEMO posiada ograniczenie kodu wynikowego do 4kB.
Witam. Dzięki za informacje. Ile kosztuje pełna werjsa, lub są inne programy które umożliwią wrzucenie całego 8k?
gwozdex pisze: Może na początek zamiast synchronizowania przy użyciu fototranzystora to poeksperymentujesz z czasem wyświetlania poszczególnych sekwencji?
Ja właśnie chcę to zasilić z silnika DC i bez względu na prędkość chcę żeby obraz (60 lini) mieściło się w 360 stopniach bez względu na prędkość kątową. Jedyna metoda jaką widzę to dioda IR i fototranzystor. Nie wiem tylko jak powyższe zdanie ująć w Bascomie :wink:
Aha i fajnie by było żeby całość się bardzo powoli obracała, żeby nie trzeba było chodzić na około, aby całość zobaczyć :wink: (tzn obraz, nie diody :smile: )

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 03 lis 2007, 11:10

Pev4 pisze:Ile kosztuje pełna werjsa, lub są inne programy które umożliwią wrzucenie całego 8k?
Bascom AVR:
- wersja specjalna PL: http://www.sklep.avt.com.pl/go/_info/?id=26712
- wersja standard: http://www.sklep.avt.com.pl/go/_info/?id=45682

W EdW 4/2007 był opis wyświetlacza widmowego na ATtiny2313.

ZbeeGin

Post autor: ZbeeGin » 03 lis 2007, 11:47

Ddevil pisze:- wersja standard: http://www.sklep.avt.com.pl/go/_info/?id=45682
Niestety dla AVT jest to nieprzyjemna informacja, ale bardziej opłaca się kupić BASCOM-a u producenta, czyli MCS Electronics w Holandii. Razem z przesyłką do polski BASCOM-AVR w wersji CD kosztuje 306,35zł (przy dzisiejszym kursie Euro).

Zatem niewiadomo skąd aż taka wielka różnica w cenie, którą i tak AVT pomniejszyła z niebotycznej kwoty 550zł do 460zł. Niestety dalej jest to cena bardzo zaporowa.

Jasam
Użytkownik
Posty: 422
Rejestracja: 27 mar 2007, 21:09

Post autor: Jasam » 03 lis 2007, 13:01

Wydaje mi się że na początek wystarczy 4 kilobajty na program, szczególnie że autor pytania sam mówi że jest początkującym. Chyba powinno się zaczynać od prostszych programów i wyrobić sobie nawyk i umiejętność jak najlepszego "upakowania" programu.

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 03 lis 2007, 14:59

Ja zasugerowałbym jeszcze aby kolega zainteresował się kursem mikroprocesorowej oślej łączki w EdW- a konkretnie to jednym odcinkiem w którym była przedstawiona konstrukcja widmowego wyświetlacza, co prawda bez synchronizacji, ale jednak...

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

Post autor: Pev4 » 03 lis 2007, 17:46

gwozdex pisze:Ja zasugerowałbym jeszcze aby kolega zainteresował się kursem mikroprocesorowej oślej łączki w EdW- a konkretnie to jednym odcinkiem w którym była przedstawiona konstrukcja widmowego wyświetlacza, co prawda bez synchronizacji, ale jednak...
Dziękuję za zainteresowanie tematem. Oczywiście przede mną leży książka "Mikrokontrolery dla początkujących" Piotra Góreckiego otwarta na stronie 94 (wyświetlacz widmowy), ale mnie bardzo interesuje synchronizacja, gdyż jak napisałem chcę żeby grafika zaczynała się dokładnie tu gdzie się kończy i tworzyła jedną całość :wink: . Będę bardzo wdzięczny za podpowiedź jak to ująć w Bascomie jeśli do Portd.1 mam podłączony fototranzystor. Port jest ustawiony na stan wysoki a fototranzystor cyklicznie zwiera go do masy. Większość zegarów widmowych które widziałem mają taką synchronizację, ale nie potrafię wyłowić tego z programu.
Ddevil pisze: W EdW 4/2007 był opis wyświetlacza widmowego na ATtiny2313.
Odszukałem ten numer z mojej mocno ugiętej już półki :smile:
Tutaj widzę jeszcze inne rozwiązanie - kontaktron resetuje procesor co jeden obrót. Choć nie ma listingu, podejrzewam że to program bez pętli, tylko rozpoczyna działanie po resecie i jest ustalony czasem, czyli im szybciej się kręci, tym bardziej rozciągnięte...

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 03 lis 2007, 23:38

Pev4 pisze:Tutaj widzę jeszcze inne rozwiązanie - kontaktron resetuje procesor co jeden obrót. Choć nie ma listingu, podejrzewam że to program bez pętli, tylko rozpoczyna działanie po resecie i jest ustalony czasem, czyli im szybciej się kręci, tym bardziej rozciągnięte...
Tak, program wykonywany jest liniowo. Każdy reset wznawia jego pracę. O ile mnie pamięć nie myli, autor tego projektu wspominał, że najlepszy efekt był otrzymywany podczas jazdy z prędkością ok. 30km/h.

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

Post autor: Pev4 » 04 lis 2007, 0:22

Witam. Właśnie ja nie chcę w to mieszać czasu, bo używam silnika DC i bez względu na jego prędkość chcę żeby grafika wyglądała tak samo - proszę o podpowiedź jak to zrealizować.
Mam następne pytanie: 2313 ma wewnętrzny oscylator... a jeśli chcę podłączyć np. 2 układy pod jeden wyświetlacz, tak aby jeden obsługiwał górną połowę a drugi dolną połowę to dwa układy nie są identyczne i rysunek może mi się rozjeżdżać... czy mogę wtedy podłączyć oba 2313 pod jeden zewnętrzny kwarc, żeby pracowały identycznie? poprostu zewrzeć X1 pierwszego ukł z X1 drugiego ukł, oraz X2 pierwszego z X2 drugiego układu i podłączyć do jednego rezonatora? Dziękuję za pomoc. Pozdrawiam.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 04 lis 2007, 12:02

Pev4 pisze:Mam następne pytanie: 2313 ma wewnętrzny oscylator... a jeśli chcę podłączyć np. 2 układy pod jeden wyświetlacz, tak aby jeden obsługiwał górną połowę a drugi dolną połowę to dwa układy nie są identyczne i rysunek może mi się rozjeżdżać... czy mogę wtedy podłączyć oba 2313 pod jeden zewnętrzny kwarc, żeby pracowały identycznie? poprostu zewrzeć X1 pierwszego ukł z X1 drugiego ukł, oraz X2 pierwszego z X2 drugiego układu i podłączyć do jednego rezonatora? Dziękuję za pomoc. Pozdrawiam.
Mówiłeś, że masz książkę "Mikrokontrolery dla początkujących" P. Góreckiego. Otwórz na stronie 177; rys. 7.21c pokazuje jak rozwiązać taki problem.
Właśnie ja nie chcę w to mieszać czasu, bo używam silnika DC i bez względu na jego prędkość chcę żeby grafika wyglądała tak samo
W takim razie musiałbyś zapętlić program oraz eksperymentalnie dobrać opóźnienie odpowiednie dla danej prędkości silnika. Na razie nic lepszego mi do głowy nie przychdzi.

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

Post autor: Pev4 » 04 lis 2007, 12:33

Ddevil pisze: Mówiłeś, że masz książkę "Mikrokontrolery dla początkujących" P. Góreckiego. Otwórz na stronie 177; rys. 7.21c pokazuje jak rozwiązać taki problem.
Rzeczywiście... czyli do nóżki X2 procesora pracującego z rezonatorem muszę podłączyć negator i podać na nóżkę X1 innego mikroprocesora? A jeśli użyłbym 3 lub więcej mikrokontrolerów w jednym układzie, to do każdego musi być osobny negator, czy wtedy mogę pociągnąć na jednym? (pytam z ciekawości)
Ddevil pisze: W takim razie musiałbyś zapętlić program oraz eksperymentalnie dobrać opóźnienie odpowiednie dla danej prędkości silnika. Na razie nic lepszego mi do głowy nie przychdzi.
Prawidłowym rozwiązaniem jest użycie synchronizacji za pomocą fototranzystora i diody IR. Niestety nie potrafię napisać fragmentu programu, który mi to obsłuży. Koledzy, proszę o pomoc, na pewno wiecie jak to zrobić.
Dziękuję za pomoc i pozdrawiam.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 04 lis 2007, 14:24

Pev4 pisze:Rzeczywiście... czyli do nóżki X2 procesora pracującego z rezonatorem muszę podłączyć negator i podać na nóżkę X1 innego mikroprocesora?
Tak, tylko musisz odpowiednio skonfigurować fusebity w poszczególnych mikrokontrolerach.
A jeśli użyłbym 3 lub więcej mikrokontrolerów w jednym układzie, to do każdego musi być osobny negator, czy wtedy mogę pociągnąć na jednym? (pytam z ciekawości)
Wydaje mi się, że tak, ponieważ inwertery pełnią rolę buforów. Tak w ogóle scalaki 40xx czy 74xx zawierają w sobie standardowo po 6 negatorów (np. 40106, 74HC14), więc nie widzęwiększego problemu :)

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

Post autor: Pev4 » 04 lis 2007, 16:22

Dzięki za pomoc :smile:
Ddevil pisze: Tak, tylko musisz odpowiednio skonfigurować fusebity w poszczególnych mikrokontrolerach.
Tego jeszcze nie potrafię zrobić (nie wiem co to są fusebity...)

Mam przed sobą EdW z listopada 2002. Jest tutaj wyświetlacz widmowy na procku AtMega8535 i ma synchronizację za pomocą fotoelementów. Pobrałem do niego program źródłowy ze strony EdW, ale w programie nie ma żadnej wzmianki o Portd.3/Pind.3 do którego podłączona jest fotodioda... o co w tym chodzi?

P.S. Jaką wydajność prądową ma każdy pin standardowego mikroprocesora dla 0 a jaką dla 1?

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 04 lis 2007, 18:08

Fusebity zwane czasem bezpiecznikami, to bity konfiguracyjne dzięki którym możemy np. ustalić źródło taktowania mikrokontrolera, włączać dodatkowe funkcje, zabezpieczyć pamięć programu / eeprom przed odczytaniem etc.. Jeżeli programujesz przy pomocy IDE Bascom-AVR, podepnij programator do uK i wejdź w "Manual Program -> Lock and Fusebits". Tam możesz zmieniać (z rozwagą, bo w przeciwnym razie uC może odmówić posłuszeństwa) ustawienia podłączonego mikrokontrolera.
Pev4 pisze:Mam przed sobą EdW z listopada 2002. Jest tutaj wyświetlacz widmowy na procku AtMega8535 i ma synchronizację za pomocą fotoelementów. Pobrałem do niego program źródłowy ze strony EdW, ale w programie nie ma żadnej wzmianki o Portd.3/Pind.3 do którego podłączona jest fotodioda... o co w tym chodzi?
Chodzi o to, że autor wykorzyastał alternatywną funkcję wyjścia PD.3 (Int1 - przerwanie zewnętrzne). Po zgłoszeniu tegoż przerwania program przechodzi do etykiety o nazwie "Fotodioda".

P.S. Typowa wydajność prądowa wyprowadzen to 20mA (max dopuszczalna to 40mA). Czytałem także, że natężenie prądu sumarycznego przepływającego przez VCC i GND nie może być większe niż 200mA.

ODPOWIEDZ