Witam. Uczę się (staram sie) programowania w BASCOM. Orłem nie jestem. Do nauki używam książkę "Marcina Wiązania - Programowanie mikrokontrolerow AVR w jezyku Bascom". Pierwsza lekcja opisuje prosty kod: $SIM 'dyrektywa opuszczenia instrukcji 'opóźnienia $REGFILE = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $CRYSTAL...
PS: Taki sam temat jest w dziale "programowanie" ale widzę, że chyba powinien być tutaj, więc go tu dałem, a tamtego nie idzie już usunąć, więc proszę o to moderatora. Witam. Mam prośbę o pomoc w napisaniu programu (do) sterownika świateł- powiedzmy 8 kanałowy. Może wpomnę że potrzebne to jest do wesołego miasteczka- karuzela. Z pewnością niejednokrotnie...
Co to jest to 'disp1'? czy jest to jakas zmienna czy alias jakiegos portu np. portb? Bo jezeli zmienna to sie nie dziw program nie ma szans przepisac jej wartości na port, gdyż nigdy nie wychodzi z pętli.
W najbardziej prymitywny sposób możesz to zrobić tak jak napisałeś, ale rozdzielając odstępami czasu pomiędzy kolejnymi sekwencjami: Portd=&B10000000 waitms 200 Portd=&B11000000 waitms 200 Portd=&B11100000 waitms 200 Portd=&B11110000 waitms 200 Portd=&B11111000 waitms 200 Portd=&B11111100 waitms 200 Portd=&B11111110 waitms 200 Portd=&B11111111 waitms...
Poprawiłem nieco kod i wygląda tak :[syntax=vbnet] $regfile = "m16adef.dat" $crystal = 80000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Porta = Input 'port A jako wejścia Config Portb = Output 'port B jako wyjścia ' Config Portd = Input 'Port D Jako Wejścia Config Portc = Output 'port C jako wejścia Config Sda = Portc.1 'konfiguracja pinu...
W Atmelach podczas reset-u a zapewne przy inicjalizacji Bascomowego stuffu, wystawiany jest na porty stan wysoki. Trzeba o tym wiedzieć, jak się projektuje część wykonawczą i przyjąć, że aktywnym stanem w sterowaniu czegoś jest niski, wystawiać zera na porty, jak trzeba coś załączyć. Żeby było widać efekty sterowania, sygnał załączający triaka powinien...
Znalazłem kod tablicy świetlnej, 8x8 sterowanej przez rejestr 74164, niestetypo załadowaniu programu na tablicy świecą się tylko trzy kolumny diód :(. Czy ktoś mi pomorze to rozgryść? 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn wyświetlacza wynosi ok. 333 Hz 'czyli częstotliwość...
Witam Tworzę teraz taki mały programik do obsługi lampki z kilkoma diodami led, w której jasność świecenia regulowana jest pwm'em przez tranzystor buz11. W kodzie jest odniesienie do lcd bo na razie wszystko robię na płytce stykowej i chcę obserwować wartość pwm na wyświetlaczu. 'sterowanie pwm $regfile = "m8def.dat" 'zadeklarowanie użytego...
Witam. Od jakiegoś czasu studiowałem w sieci różne materiały na temat matryc LED i ich sterowania. Mój projekt teoretycznie powinien działać, jednak jest bardzo toporny w oprogramowaniu, a przy chęci wyświetlenia dłuższego tekstu po prostu (z powodu archaicznego programu) zaczyna brakować w uC pamięci Flash. Przechodząc do rzeczy. W Eaglu zaprojektowałem...
Cześć Chciałem prosić kogoś o wskazówkę jak poradzić sobie z problemem wyświetlania wartości "Wartosc2" poniższego kodu. Mój problem polega na tym że w momencie naciśnięcia przycisku ( w programie to Up, Dwn ) gdy na wyświetlaczach jest np 1.1 wyświetlacze "resetują" się i wskazują wartość 00 po zwolnieniu przycisku wyświetlona zostaje poprawnie kolejna...
Witam Zmontowałem sobie układ Atmega32 z pojedynczym wyświetlaczem 5x7 i wszystko działa tak jak należy ale problem zaczyna się w innym miejscu. Potrzebuję połączyć 3 takie wyświetlacze, lecz nie mam pojęcia w jaki sposób to zrobić. Proszę o pomoc Tutaj podaję listing programu
Witam, Mam problem. Chodzi o listingi z książki Marcin Wiązania - Programowanie mikrokontrolerów AVR w języku Bascom W książce są dwa przykłady sterowania matryca Led 5X7 Pierwszy przykład z książki ma za zadanie wyświetlać znaki po kolei i to działa. Natomiast drugi listing ma za zadanie przesuwać znaki z lewej do prawej. I to już nie działa. Schemat...
Okej mam taki oto programik który realizuje mniej więcej moje założenie - trochę się naszukałem ale ile przy tym znowu nauczyłem ;) Config Lcd = 16 * 2 Dim Ad As Byte Dim Pa As Single Do Do ' początek pętli programu Cls ' procedura czyszczenia ekranu I2cstart ' start magistrali i2c I2cwbyte 144 ' adres zapisu I2cwbyte 0 ' wyślij bajt danych do pcf8591...
Witam Elektrycznie jak najbardziej poprawnie - wszystko podciągnięte. Zegar wewnętrzny 8 Mhz Zmieniłem koncepcje programu i juz nie obserwuje zjawiska. poprzednio miałem 3 instrukcje wyboru select case select case zmienna1 case 1: . end select select case zmienna2 case 1: . end select select case zmienna3 case 1: . end select W zależności...
Nie sprawdzałeś wiadomości prywatnych :P Miałes tam link który mógłby się przydać. [url=]Link Ktoś prosił żeby sprawę multipleksowania opisać więc coś tam naskrobałem a nie chce się powtarzać więc link :) Powinieneś mieć obliczone w pętli głównej wartości dla poszczególnych wyświetlaczy. Wtedy możesz mieć tylko jedną tabelę z wartościami dla portu i...
NIe przerwanie wywołanie wybraniem Menu ale przerwanie wywołanie naduszeniem klawisza. Kodu Tobie nie napiszę ale poradzę tak: Podłącz sobie sprzętowo klawisze tak aby każde ich wciśnięcie generowało przerwanie t.j. każdy z 4 przeycisków ma być podłaczony do jakiegoś portu wejściowego ale dodatkowo wyzwalać przerwanie np. INT0, można użyć bramki 7420...
Czy buzzer jest z generatorem? Jeżeli nie jest, to należy go sterować z odpowiednią częstotliwością - można to zrobić na kilka sposobów: 1) Zapozać się z poleceniem SOUND, np SOUND Port_buzzera, ilosc_impulsow, ilosc powtorzen Odpowiednio dobierając wartości parametrów możesz uzyskać dźwięk o dowolnym tonie i długości (parametry różnie działają na otrzymany...
witam. potrzebuję odmierzyć równo 1 sekundę, przykład wziąłem z kodu :
Zrobiłem se coś takiego, ale nie działa tak jak powinno Jeżeli Pind.0 i Pind.1 są wejściami to konfiguracja portu 'D' winna wyglądac mniej więcej tak: [code][syntax=basic4gl] ................. Config Portd = 124 'Pd.0 i Pd.1 jako wejścia Portd = 127 'podciągnięte ................ [/syntax] Przewidywana żywotnośc EEPROM jest ok. 10 000 wpisów. W twoim...
Witam. Mam zrobioną matrycę LED z sześciu wyświetlaczy 8x8. Sterowanie poprzez PORTA (ULN2803) procesora dla kolumn i HC595 dla wierszy. Męczę się już od jakiegoś czasu, ale nie mogę dać rady z jedną rzeczą. Podczas przewijania tekstu widzę go rozmytego, tak jakby byłu dwa napisy na sobie, ale przesuniętę o jeden piksel w bok (pogdubione litery). Ogólonie...
Parę lat temu w liceum nauczyciel pokazywał mi metodę przekazywania tego typu zmiennych poprzez liczby binarne, np ostatni stan wyświetlacza z przykładu byłby interpretowany jako 00100, tylko nie pamiętam co i jak... ;) B100=4 ;) Ja bym to napisał tak (przyciski między pin a masę): Cls : Cursor Off Dim Stan As Byte , X As Byte , Blokada As Bit...
Załamałem się tym zerem w kwarcu, to było to. Port D miałem ustawiony, B poprawiłem. Wyświetlacz działa jak należy. Mam jeszcze jedno pytanie, dotyczące instrukcji opóźnienia Wait w pętli głównej. Dla czego jest ona potrzebna i dla czego wpisując w jej miejsce Waitms z dowolną wartością wyświetla mi "000 0"?
O taką odpowiedź własnie mi chodziło. Rodzi sie kolejne pytanie: Skoro timer0 mam już zajęty generowaniem impulsu służącego do naliczania sekund... Mam zaprząc do obsługi wyświetlacza kolejne przerwanie, czy wpakować przełączanie anod, i szukanie odpowiedniej wartości dla portu, na których wiszą katody w tym samym miejscu, co inkrementacja zmiennej...
Trochę to może zagmatwane co napiszę. Potrzebuję zrobić sub-rutynę w której chciałbym użyć Readeeprom do której chciałbym podawać adresy do odczytu z Eeprom poprzez parametr. Czy w Bascomie 2.0.5.0 tak można ? Poniżej przykladowy kod jaki chciałbym uzyskać: [syntax=basic4gl]$eeprom Data 0 ' zerowy bajt może zostać wyzerowany Poczatek: Data "0791" 'początek...
Kurcze ale malutki jestem... :D Po skrócie 1. Nie używałem JTAG-a i ta wiedza póki co nie jest mi raczej potrzebna. 2. Wiem jak ustawia się fusebits, ale jak napisałem na AT mam wyłączony JTAG a na AT168 nie. Jednak magistrala na AT168 działa bez problemu i to na porcie C z włączonym JTAG-iem 3. Rezystor podciągający dobrałem metodą prób i błędów staneło...
Cześć! Zacząłem niedawno eksperymenty z Bascomem na płytce ZL3AVR, obecnie wziąłem sobie za cel napisanie zegarka na wyświetlacze 7-segmentowe, ale mam problem z ich obsługą.. a konkretniej wyświetlaniem kolejnych cyfr w pętli. Wszystko działało (w sensie wyświetlały się cyferki, nic specjalnego:)), zanim nie postanowiłem zastosować właśnie pętli FOR...
Obejdzie się bez przesuwania i masek. Jeżeli mamy zmienną Z to wartość bitu b tej zmiennej można zmieniać odczytywać, zapisywać wysyłać do portu lub co komu się podoba poprzez Z.b . To tak jak Portb.1 itp. Odczyt bitu pierwszego to np. Wynik = Z.1 (bit zerowy to Z.0) Zapis to Z.1=1 Warunek If Z.1 = 1 Then ... i tak dalej.... Jeśli dotyczy to zmiennej...
Cześć, musisz wiedzieć jak mikrokontroler wykonuje program żeby to zrozumieć. Mikrokontroler wykonuje program linia po linii , czyli najpierw konfigurujesz port a(linia 1.) potem go ustawiasz(linia 2.). W linii 7. definiujesz zmienną a w linii 8. nadajesz jej wartość. Do tej pory idzie gładko mikrokontroler linia po linii wykonuje twoje polecenia. Zabawa...
Muszę przyspieszyć trochę Bascoma, więc zabrałem się za wstawki w asemblerze. Kod prawie działa, piszę "prawie" bo mi się ni jak na logikę nie zgadza ilość przebiegów pętli. Na początek fragment kodu z moimi komentarzami. [syntax=basic4gl] ser r16 'do rejestru R16 laduje wartosc 255 ldi r17, &H84 'do R17 laduje H84, czyli dziesietnie 132 ldi r18, &H03...
Pisze właśnie program obsługujący matrycę LED 126 na 15 mam sobie prototypowy programik który wygląda tak : Config Timer0 = Timer , Prescale = 8 On Timer0 Tim0 Load Timer0 , 200 Enable Timer0 Enable interrupts Do For Da = 0 To 240 Dat(da) = 128 Next Da Loop End Tim0: Nr2 = Nr2 + 1 Nr3 = Nr2 + 15 Nr4 = Nr3 + 15 Nr5 = Nr4 + 15 Nr6 = Nr5 + 15 Nr7 = Nr6...
Kol. Roko . Częściowo takie rzeczy pojawiły się już w polskiej pomocy do BASCOM-a On-Line. Obecnie jest jednak ona czasowo niedostępna. Przykład: BASCOM AVR - Tworzenie programu W trakcie edycji (...) Jak nie pisać programów. Dość często podczas przeglądania programów udostępnionych przez inne osoby da się zauważyć pewne charakterystyczne i powtarzane...
no z tym twoim 100Hz to nie mam pojęcia co się dzieje - ale ja już czasem różne dziwne rzeczy miałem w Bascomie kiedyś przy korzystaniu z Wait'ów w jakichś specyficznych sytuacjach. Oczywiście nie zwalam tu żadnej winy na Bascoma - bo zwykle czas gonił i nigdy nie miałem go na tyle aby dogłębnie przeanalizować co było nie tak - więc nie wiem - ale wymyślałem...
Witam. Nadmieniam, że czytałem już kilka wątków i stosowałem metody rozwiązania problemu, jednak nie pomogło mi to;/ Do rzeczy - buduję samochodzik zabawkę, sterowany pilotem w kodzie RC5. NIestety bezskutecznie. Odbiornik podczerwieni - tsop1736, zasilanie podpięte przez szeregowy rezystor 220omów i kondensator 100u. W pierwotnej wersji, wyjście odbiornika...
' D.CH.ELECTRONICS INC ' Program sterownika rolety licznikiem jest port EEDR Config Portb = &B11111100 ' ustawiam pind.7 i 6 jako wejści dla S1 i S2 Portb = &B11111111 ' stan spoczynkowy Dodano po 9 Tak wygląda kod źródłowy do tego układu. Układ steruje pracą silnika DC pracującego na napięciu 12V. Sterowanie odbywa się poprzez zmianę polaryzacji za...
Należy "podpisać" przesyłane zmienne tak by mikrokontroler jednoznacznie wiedział z którą ze swoich zmiennych skojarzyć ma przesłaną wartość i w niej ją zapisać. Wiele urządzeń ma swoje własne sekwencje bajtów po których własnie mikrokontroler jest w stanie określić co nadeszło. Takie sekwencje nazywają się "ramką". Na przykład System NMEA 0183 z odbiorników...
Sprawdzę to. A dla czego prąd przy uśpieniu jest znowu duży? Nie pomaga teraz wyłączenie adc. Próbowałem też wyłączenia przerwań, ale nic kurde nie pomaga na obniżenie poboru prądu po uśpieniu. Komenda odlicz była ustawiona na 5. Nie działało to. Gdy ustawię 50, wtedy działa 5 sekund i gaśnie czyli ok. No i w końcu, procesor startuje za każdym razem...
Witam Zrobiłem termometr na Ds18b20 i wynik wyświetlany jest na 3 wyświetlaczach 7 segmentowych Led. Dodatnia temperatura działa bardzo dobrze jednak gdy pojawia się ujemna temperatura poniżej - 10 stopni na wyświetlaczach pokazują sie same 8 8 8 . Może to dlatego że pojawia się - ? Nie wiem jak w bascomie można napisać moduł z liczby np. |-10| = 10...
Witam, Ostatnio również ja, skuszony możliwościami układów rfm12, postanowiłem zakupić dwa moduły tego typu (433 MHz). Śledząc ten wątek natknąłem się na kod użytkownika avatar , postanowiłem wykorzystać go więc w mojej aplikacji. Niestety, po podłączeniu modułów do procesorów nie zachodzi żadna transmisja. Po pewnym czasie nierównej walki z w/w nasunęło...
Witam, cel pozostał ten sam, lecz zmienił się kod, tym razem bez Lcd, więc jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony...
Witam Moja Atmega 16 wiesza się w pętlach Uszczenianie i Paletyzacja poniższego programu: 'Listing programu obsługującego symulator procesów. Program został napisany ' i skompilowan w programie BASCOM-AVR 1.11.9.8. $regfile = "m16def.dat" 'określenie typu procesora $crystal = 8000000 'określene szybkości zegara 'Watchdog Wdtcr = &B00011111...
Pobawiłem się dziś chwilkę programowym PWM. Jest to rozwiązanie na 8 kanałów - 25 może być ciężko pociągnąć ale oczywiście możesz próbować rozbudować program i zmienić częstotliwość zegara czy wywołania przerwań. Pierwszy to demonstracja tworzenia w zasadzie dowolnie biegnącego światła - dane umieszczamy w liniach Data (wartości od 0 zgaszone do 8 max...
Nie chciał bym za Ciebie pisać tego programu, bo jest to naprawdę proste zadanie i dlatego spróbuj sam napisać go jeszcze raz od początku wg np. takiego algorytmu: Ustaw timer powiedzmy na 10khz aby każde przerwanie wykonywało się co 100 mikrosekund. Możesz też gęściej od tego zależy dokładność - tu 100us czyli 0,1ms Zdefiniuj sobie zmienną licznikową...
Witam chciałem zaprojektować sobie oświetlenie schodów podobne do tego na filmiku w celu regulacji tego kiedy ma być aktywne to oświetlenie schodów tzn. żeby nie dochodziło do zapalania świateł na schodach np. gdy jest słoneczny dzień i jest jasno w domu tylko po zmroku. Dodatkowo chciałem jeszcze dodać taką funkcję żebym mógł zapalać oraz gasić to...
Witam wszystkich. Bardzo ładnie proszę, o sprawdzenie kodu poniżej. Nie mogę za nic w świecie ustawić zegara, i z datą jest też nie do końca ok. Męczyłem się składając linijki, i nie wychodzi. Nie wiem gdzie są błędy. Zegar idzie, ale nie idzie go ustawić. Jeśli wyświetla 13:20 i ustawię inny czas, wraca z powrotem do 13:20 lub innej wartości. Czy może...
Program napisany jest w Bascom. Delay nie ma w ogóle. Program napisany chaotycznie, ale działał ok dopóki nie dopisałem obsługi DCF77. Gdy przyjdzie odpowiednia godzina, dioda IR ma wysłać kod do odbiornika. Wtedy właśnie procesor zwalnia. Sekundy wtedy "idą" co 3 no i dźwięk ma zwolnione tempo. [syntax=vbnet] $regfile = "m32def.dat" $crystal = 8000000...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Przeznaczenie: Konfiguruje pracę programowego interfejsu I2C jako urządzenia podrzędnego (Slave). Ta instrukcja korzysta z biblioteki I2CSLAVE.LIB, która jest rozprowadzana oddzielnie przez MCS Electronics. Składnia: CONFIG I2CSLAVE = adres 'Instrukcja Config I2cslave automatycznie włącza globalny system przerwań! Config I2cslave = &B01000000 'czyli...
Witam Program jak wiadomo działa w jakiejś pętli. Użyj więc w tej pętli polecenia WAITMS 100 czyli oczekiwanie 100 milisekund. I teraz tak jeśli naciśniesz klawisz (zakładamy, że na porcie panuje wtedy 0 logiczne) i trzymasz go to jakaś zmienna jest inkrementowana co 100 milisekund. Jeśli zmienna ta doliczy do 60 to minie około 6 sekund i wtedy każesz...
Witam Odczyt i konwersja jest w pętli głównej.;) Na samym początku("Change Resolution") jest zmiana rozdzielczości czujnika. Do komputera raczej nie jest potrzebna dokładność do trzech czy czterech miejsc po przecinku. Zmianę tą starczy wykonać na samym początku programu, nie ma potrzeby wciskania tego do pętli. Źródło stąd: Co do poleceń wait, może...
Co z tego że wywołujesz procedurę PRZYCISKI, jak nie "mówisz" Select Case gdzie ma przejść, to bez sensu. Musisz do zmiennej "Nr_przycisku" wpisać jakąś wartość.\ Jeśli chcesz by działało np. CASE 5 to musisz zrobić "Nr_przycisku = 5" Po chłopsku: SELECT CASE, to tak jak WYBIERZ CASE. Czyli do zmiennej ""Nr_przycisku" musisz przypisać wartość CASE X:,...
... o ile na porcie jest stan L to rezystancja wynosi 4.3k (nie ma takiej wartości w układzie) i się nie zmienia Jak to mierzysz? Opisz dokładniej, bo to co piszesz kupy się nie trzyma. A najlepiej to pokaż schemat. A patrząc na Twój kod i to co piszesz poniżej wychodzi, że nadal nie rozumiesz tabelki, którą podałem i tego co napisaliśmy z kolegą wcześniej....
Witam Analizując program w niektórych przypadkach mam problem ze zrozumieniem Trudno zrozumiec, bo akurat wybrałeś jego pierwszą wersję (zupełnie błędną), która uległa kolejnym poprawkom w dalszej dyskusji. Najbliższa do porawnej była umieszczona pod postem #10 (chociaż i ta wymaga pewnej korrekty tak jak wcześniej pisałem). Niezależnie od tego, winieneś...
Pozmieniałem sporo w programie. Zastosowałem się do sugestii skrócenia głównej pętli teraz praktycznie jest bardzo krótka a na końcu ma instrukcję waitms 400. Zauważyłem że program jest bardzo wrażliwy na długość głównej pętli gdy tylko znalazła się jedna linijka za dużo program odczytywał tylko wartość sekund z PCF8563P. Stosy ustawiłem na 128 a i...
Chciałbym się dołączyć do tematu. 3.1.19. Nie wysyłaj wiadomości w tematach archiwalnych, jeśli jest to kolejne pytanie, w szczególności inne niż osoby pytającej. Z racji szacunku do pytającego załóż własny temat. Możesz dopisać tylko sposób rozwiązania problemu. Walczę z programem w Bascom na Atmege32 połączoną poprzez MAX232 z czujnikiem wyposażonym...
Kolega to potrzebuje do sterowania syntezą Saa1057. Instrukcja Dat = Wpis.x w pętli wpisuje do zmiennej Dat kolejne bity zmiennej dwubajtowej o nazwie Wpis Czyli jeśli Dat = Wpis.0 to w zmiennej Dat powinien znaleźć się najmłodszy bit zmiennej Wpis. Do syntezy potrzebna jest funkcja podająca na końcówkę portu kolejne bity dwubajtowej zmiennej Wpis począwszy...
Kod jest dość spory więc wkleję najważniejsze fragmenty odpowiedzialne za RC5 ,SD i 1Wire. RC5 '***************************************... '****************************PROCEDURA ODCZYTU RC5**************************** '***************************************... Readir: Disable...
Witam szanowne grono forumowiczów. Od pewnego czasu borykam się z problemem konfiguracji SPI. Mam połączoną jedną atmegę8 jako master i 4 jako slave w sprzętowym SPI. Cztery atmegi pracujące w trybie slave zajmują się obsługą wyświetlaczy ledowych (dla każdej atmegi 4 8 segmentowe wyświetlacze obsługiwane multiplekowo). Obsługa samych wyświetlaczy działa...
Witam, Uczę się bascoma, i stworzyłem sobie programik z zegarkiem i termometrem, lecz na LCD temperatura miga mi na przemian z godziną oto kod: [syntax=basic4gl] 'definicja użytego procesora $regfile "m32def.dat" 'prędkość taktowania 16MHz $crystal = 16000000 $eeprom 'piny podłączenia LCD i definicja jaki LCD | 16x2 Config Lcdpin = Pin , Rs = Portb.0...
Witam, próbuję zaprogramować prosty zegarek na PCF8583 na płytce EvB i już na wstępie napotkałem na ścianę. Jestem początkujący - generalnie to pierwszy program w bascomie, który ma więcej niż kilkanaście linijek, więc liczę na Waszą wyrozumiałość i pomoc. Udało mi się na podstawie przykładów z tego forum i zaczerpniętych z netu, zmusić do działania...
Porozstawiałem znaczniki tak jak proponowałeś z tego co mi wyszło to program bezproblemowo przechodzi do pętli głównej ale wykonuje ją kilkadziesiąt razy zanim zmieni wyświetlaną wartość. Niestety nie mam już portów na lcd, wszystko multiplexuje na ośmiu 7-segmentowych wyświetlaczach. Znacznik dałem w pętli głównej zaraz po [syntax=basic4gl] If Sekundyj...
Pisząc program chciałem wstawić swoje znaki za pomocą polecenia Deflcdchar, ale pojawił się problem . Na wyświetlaczu lcd zamiast zdwfiniowanych znaków pojawiają się krzaczki , próbowałem na różnych prockach attiny2313, atmega8 i atmega32 wszędzie to samo. Wszystko oprócz tego wyświetla się normalnie, ponadto zauważyłem że mój bascom generuje źle kody...
Kod jest prosty tylko, przez te niskopoziomowe instrukcje wygląda na zagmatwany. Masz tam zwykłe ustawienie ADC co Bascom robi jedną komendą. Jedyna różnica to to użycie ADLAR czyli wynik konwersji w ośmiu bitach i przesunięty do ADCH. Później Autor ustawia Timer i to tylko do mrugania diodą (13 to typowe Arduino chyba). No chyba że ten 1Hz się tam...
Napisz w Visual Basicu (lub innym) program z przyciskami, ptaszkami itd. do wyboru diody, zakoduj to w bajcie i wyślij go przez RS232 do µC. W programie µC wstaw instrukcję input w pętli tak aby reagowała na transmisję z PC. Odebraną wartość zapisz w rejestrze portu, do którego podłączysz diody. Jak nie wiesz jak z poziomu Visual Basica dobrać...
Hmm dalej nie kumam do końca o co chodzi jestem początkujący ... Znalazłem taki program w książce do odmierzania 1 s tylko jak to do mojego programu dołączyć [syntax=basic4gl]'Przykład wykorzystania Timer0 do generowania w przerwaniu '1 sekundowych odcinków czasu 'Program co sekundę w przerwaniu zmienia na przeciwny stan linii 'PD0 sterującej diodą...
Koledzy otóż 3 fotorezystory dlatego że oprócz solara Atmega będzie wykonywała sporo funkcji. I każde wejście dla mnie jest ważne. A do programu nie będzie problemu. Jak widzicie na filmie nie ma problemu ustawić kopułkę prostopadle do słońca. W przypaku czterech czujników praca prawo lewo i góra dól bez problemu może być jednoczesna, a w przypadku...
Witam mam problem z programem do trawiarki mianowicie znalazłem na necie program do sterowania trawiarką chciałem do tego dopisać wybór menu żeby było jeszcze był drugi tryb sterowania trawiarką. Wgrałem program do uC i działało poprawnie potem chciałem wgrać ten sam program bez żadnych zmian na inna ATmege8 i okazuje się że teraz program działa trochę...
Witam Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt...
na każdym który napiszę jest tak samo, w nowym temacie powyżej podałem ustawienia fuse bitów, zaraz wkleję kawałek na którym teraz się bawię Dodano po 4 to kod na którym teraz się bawie '***************************************... '-------------------- konfiguracje ----------------------------------------... $regfile...
Ten program daje następujący ciąg sygnałów Pulse i Noise: Start: Pulse=1 Noise=0 Petla: Noise=1 Opóźnienie=1 us Pulse=0 Opóźnienie=70 us <-- tu zmieniasz na 40 us Pulse=1 Opóźnienie1 Xdelay Noise=0 Opóźnienie1 Sustain Noise=1 Opóźnienie1 M_Xdelay Opóźnienie1 M_Sustain Opóźnienie 9788 us ' <--- tu zmieniasz okres całości GOTO Pętla Czyli...
Witam! Mam problem z przerobieniem kodu tablicy świetlnej z wyświetlaczem matrycowym led. Posiadam kod z książki Marcina Wiązani - Programowanie mikrokontrolerów AVR w języku Bascom przerobiony według instrukcji użytkowników w temacie: 'Program tablicy świetlnej 'Sterowania multipleksowe wyświetlaczem matrycowym 7x5 LED 'Częstotliwość sterowania kolumn...
problem mój polega na nieprawidłowym wyswietlaniu cyfr . o ile w zakresie 0-99 wszystko jest ok., to powyżej 100 ma same zera : wyswietlacz ma 3 cyfry led-7-segmentowe i w założeniach ma liczyć czas od 0 do 999 sek pełny kod: '$sim $regfile = "m8def.dat" 'informuje kompilator o pliku $crystal = 8000000 'informuje kompilator o Config Portd...
Witam Mam taki programik troszke posklejany ale wyskakuje błąd co robie nie tak . label not found [_ENDIFO ] $regfile = "m8def.dat" 'Atmega8 $crystal = 8000000 'Kwarc 8MHz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.1 , Db6 = Portc.0 , Db7 = Portb.5 , E = Portc.3 , Rs = Portc.4 '*************************************.....
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
Fakt, ze jest milion różnych sposobów na zrobienie tego. Ok spróbuję tym sposobem co mi podsunąłeś. W sumie nawet lepiej tak. Dzięki. Dodano po 5 Ok, coś tam skleciłem, jest to niepełny program, bo nie ma w nim np. ustawień dla Mute i trybu, oraz nie pokazuje na LCD wartości, ale to później. Póki co mam dziwny problem z wyświetlaniem, ale o tym za chwile....
Witam podaję kod, który działa poprawnie, oczywiście należy go dopasować do swoich potrzeb. [syntax=vbnet] 'Sterownik swiatel V2.2 '10-06-2015 'Roman Biadała $regfile = "m128def.dat" $crystal = 11059200 '$lib "fp_trig.lbx" '******** Ustawienia portów ****************************************... '******** Sterowanie 74HC541 - przekaźniki *************************************...
Mam taki problemik tutaj macie fragment kodu: 'C013b Prosty zegar z ustawianiem Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit , Uniwers As Byte Config Portb = 255 : Portb = &B255 : Config Portd = &B1111100 : Portd = &B1111111...
Jest błąd nr 92 w tej linii Shift Temp, Left 8 Już poprawiłem brakowało przecinka przed 8, Wyświetla nadal same 000. Sprawdzałem czujnik na moim termometrze z zegarkiem i budzikiem w którym była poprzednia wersja procedury odczytu i jest ok. Zauważyłem jeszcze, że przy tej procedurze odczytu co teraz zamieniłem stan portu Pc5 się wcale nie zmienia,...
Po przeczytaniu wielu postów napisałem program który ma wyświetlać na wyświetlaczu LCD Napięcie , prąd oraz temp. Chciałem to wykorzystać do zasilacza, którego właśnie buduje. jednak po zaprogramowaniu procka wyświetlacz mi się nie inicjuje (zaświecają się kwadraty w pierwszej lini). Czy jest jakiś błąd w moim programie ? Proszę o sprawdzenie. $regfile...
Witam wszystkich wszech wiedzących. Mam taki drobny problem, otóż w zestawie uruchomieniowym zl11avt zaprogramowałem mikrokontroler attiny 2313 żeby na wyświetlaczach led był zegarek z budzikiem. Po zastanowieniu sie zobaczyłem że mam 4 porty wolne i mogę wykorzystać je do czego chce. Chciałbym żeby to był normalny zegarek ale gdy na PD2. (wolnym) pojawi...
czy odbiór kodu Rc5 już Tobie działa ? Jestem na GG6293398 Jeśli kod ma być zapamiętany po wciśnięciu przycisku, to najpierw trzeba skonfigurować port: np. Config Pinb.0 = input Portb.0 = 1 readeeprom rozkaz, 0 w istniejącej pętli do...loop wpisać: if pinb.0 = 0 then writeeeprom rozkaz, 0 readeeprom rozkaz, 0 to fragment programu, niestety nie mam możliwości...
Witam. Sekwencja to kilkanaście sekund, odtwarzana w kilkuminutowej pętli. Proponowane wykorzystanie timera daje jedynie odmierzanie owych 1ms impulsów dla liczników i zapewni jedynie większą dokładność pomiaru niż waitms. Z tym nie ma problemu. Komenda ta zapewnia mi to czego potrzebuję i z tym nie mam problemu. Wykorzystanie tablicy to pomysł wart...
A spróbuj tak: Odczyt=Temp Dim Jednostki As Byte , Dziesiatki As Byte ' cyfry do wyświetlania temperatury Dim Temp As Byte ' temperatura Dim Pompka As Bit ' sterowanie pompką Dim Odczyt As Byte Dim Cyfrybcd As Byte Dim Ktorywysw As Bit Enable Interrupts ' oblokuj przerwania Enable Timer0 'odblokuj timer0 Enable Timer1 'oblokuj timer1 Config Timer0 =...
Hmm... tak już robiłem i to nie pomogło... ale już poradziłem sobie z problemem ;D Wina była zakłóceń, bo po dolutowaniu na wejście pomiarowe ADC8 kondensatora, diody przestały szaleć. Dodatkowo brakowało przesunięcia bitowego (bo na port podawało 8 bitów młodszych z 10). Miałem na celu zrealizowanie sterownie PWM za pomocą ADC (napięcie z potencjometru)....
Witam na wstępie chciałem powiedzieć, że nie jestem dobry w programowaniu, bo dopiero zaczynam i mnie to powoli wciąga. Mam parę pytań i postanowiłem napisać. Chce zrobić sobie taki mini komputer pokładowy do Fiata Cinquecento 700. Ten mały układ ma wskazywać temperaturę w środku samochodu i na zewnątrz a tak, że będzie pokazywać napięcie, jakim jest...
Witam.Jestem w trakcie robienia wytrawiarki i termostatu do niej.Opieram się na projekcie kolegi Ducha.Zrobił bardzo fajny termostat na diodach led.Jego program trochę przerobiłem na moje potrzeby.Lecz nic nie trwa wiecznie.Na początku szło gładko,ale potem zaczeły sie schody.W założeniu mój program ma działać tak: -temperatura wyświetla sie od 35 stopni...
A ja napisałem program sterownika dwóch silników krokowych na jednym Attiny2313 i powiem że chodzi to pięknie :) . Jest możliwość wybrania 4 prędkości obrotowych , oprócz tego oba koła mogą kręcić się w tą samą stronę (w tył lub w przód) , albo też pojedyncze kółko (też do wyboru kierunek) . Za pomocą 2 + 4 przycisków ' Sterowanie silnikami krokowymi...
Witam Chcę napisać program który wyświetlał by tekst na lcd (program do samego wyświetlania txt działał) ale teraz chciałem zrobić taki co wyświetla tekst i za pomocą przycisku zapala podświetlenie i po ponownym przyciśnięciu by go gasił. Pojawiły mi się błędy których wczesniej nie miałem ( kody błędów na screenie) Tutaj załączam sam kod $regfile =...
Jak nie ma migać, jak w pętli do-loop masz toogle. Ogólnie to twój program jest do kitu. W pętli do-loop sprawdź czy coś się zmieniło, jeśli tak, to skocz do podprogramu. Tam toogle, zapamiętanie nowych wartości, mała przerwa, aby nie migać i powrót. Napisałem w notatniku, ale chyba złapiesz o co chodzi. Spróbuj tak: $regfile = "m32def.dat"...
Jeśli chodzi o punkt drugi to zmieniłem i teraz na wyświetlaczu przynajmniej napis nie mruga, ale nadal zero reakcji na przyciski. I jak sterować tym kursorem? I jeśli tam jest zmienna program 1 i program 2 do przechowywania wartości do wyświetlania to jak wybrać program 2 bo teraz mam cały czas program 1, w ogóle nie rozumiem tego programu. Wizualny...
Witam Mam problem z odbiorem sygnału rc5 a dokładnie buduję zegar na wyświetlaczu 7-seg w oparciu o atmege8 i układ pcf8583. Jak na razie wszystko mi działa i odczytuje czas i wyświetlam go lecz po dodaniu wierszy kodu programu odpowiedzialnych za odbiór rc5 program się wiesza i nic nie realizuje, a na wyświetlaczu są same zera... Nie mam już pomysłów...
Chciałbym uzyskać możliwość sterowania zmienną Y, ale nie dział mi ten ADC Po czym to stwierdziłeś ? Skoro odczytana wartość z przetwornika jest wyznacznikiem ilości powtórzeń pętli FOR - NEXT , wytłumacz po co ta pętla . Chcesz sterować zmienną Y a gdzie jakikolwiek warunek , zależność aby zmienić jej wartość , po co pomiar napięcia jak praktycznie...
Witam wszystkich! Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający...
Owszem w konfiguracji Timera głupi błąd, ale ku mojemu zdziwieniu przerwanie działało. W liczeniu czasu chyba się koledze przecinek przestawił. Przerwanie w teorii kompilatora bascom trwa ok 0,16ms. W praktyce: po dodaniu w przerwaniu " toggle portb.0" częstotliwość generowanego przebiegu prostokątnego to 3,289kHz więc przerwanie wykonuje się z częstotliwością...
Zrobiłem płytkę do sterownika domowego na której znajdują się dwa procki: atmega128(procesor główny) i atmega32(procesor muzyczny). Konieczna jest w tym przypadku komunikacja tych procesorów w obu kierunkach przez uart. Całą noc zajęło mi napisanie programu do takiej właśnie komunikacji i w rezultacie mam coś takiego: At128- [syntax=basic4gl]'---PROCESOR-----------...
Witam, Temat zliczania czasu na mikro kontrolerach to temat rzeka, jednak wałkując forum chciałem się dowiedzieć najbardziej podstawowych rzeczy. Takich jak np. podpięcie układu Real Time Clock do Atmegi i sposób pozyskiwania danych z niego. Bardzo proszę o wyrozumiałość co do pytań. Ideą, dlaczego zadaje pytanie jest liczenie czasu pracy... Atmegi....
Witam Proszę o wsparcie wiedzą i doświadczeniem przy programie na procesor atmega128. Program ma sterować dodatkowym wtryskiem gazu w tym przypadku będzie to instalacja 5tej generacji LPG czyli fazy ciekłej. Zasada działa nia jest bardzo prosta i wymaga: Podłączenia sygnałów z 2 wtryskiwaczy (tyle wystarczy w 4 cylindrowym silniku) przez diody prostownicze...
Witam Zmieniłem sposób obsługi wyświetlania. Początkowo miałem tak : [syntax=basic4gl] '************ Zegar 8 wyswietlaczy LED + 74HC595 + PCF8563 $regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 32 ' rozmiar stosu programowego $framesize = 32 $baud = 9600 '************ deklaracje portow - 74HC595 Config...
Co myślisz o tym żeby użyć tylko jeden Timer? [youtube][/youtube] [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 16000000 '*** Timer0 Config for 500Hz Interrupt CTC Mode *** Config Timer0 = Timer , Prescale = 256 , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 1 Enable Compare0a : On Compare0a Int0_isr : Compare0a = 249 '******************...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
- PROGRAM GŁÓWNY ---> naciskam przycisk np. portd.1 i wchodzę w USTAWIENIA1 ----> naciskam kolejny raz klawisz portd.1 i wchodze w USTAWIENIA2 Witam. Robiłem cos podobnego ale na 89c2051 - wiadomo mało portów. Dlatego menu zrobiłem inaczej. W pętli głównej zrobiłem odwołanie do wejścia i napisałem: if P1.0 = 0 then call Ustawienia else call praca end...