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...
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ... Home Lcd "P=" ; P ; "us" Lowerline Lcd "I=" ; I ; "us " ; Licznik If Licznik = P Then Portd.2 = 0 End If If Licznik >= C Then Portd.2 = 1 Licznik = 0 End If ... Dobra odczepiam się od portów :) I już mówię dlaczego...
Programu Ci nie napiszę ale opiszę jak go napisać... 8-) 1. stwórz sobie zmienną BYTE przypisz jej wartość &B00000001 2. w pętli badaj przycisk i jeśli będzie wciśnięty to wykonaj instrukcję SHIFT zmienna,Left,1 3. przypisz zmienną do portu, na którym ma wędrować jedynka 4. czekaj aż przycisk będzie puszczony 5. pamiętaj, że jak instrukcja z punktu...
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...
tak jak piszesz reti używasz tylko do powrotów z przerwań, natomiast samo ret do powrotów z funkcji (podprogramów) aby dosyć jasno pisać kod należałoby się trzymać pewnej zasady, o którą czasem wiadomo ciężko ale... .... otóż po tei inicjalizacji robisz tzw pętlę główną (zamkniętą) - występuje ona w każdym języku wyższego poziomu jak Bascom lub C. czyli...
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...
Co do kwarcu to definiujemy go zawsze, niezależnie od tego czy proc pracuje na zewnętrznym, czy na wewnętrznym, bo to jest informacja dla kompilatora, wg jakiej wartości ma wyliczyć czasy dla różnych instrukcji. Jeżeli to jest "nówka sztuka" to pracuje na wewn. 1MHz. Jak sam zauważyłeś, instrukcja "Loop" powinna znajdować się po ostatnim "Endsub", ale...
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinó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...
Masz w sumie do odczytania następujące sygnały: 4 sterujące włączaniem poszczególnych wyświetlaczy i 7 sterujących włączaniem poszczególnych segmentów na wyświetlaczach. Te sygnały musisz "pociągnąć" bezpośrednio z wyjść procka sterującego wyświetlaniem LED'ow - przed tranzystorami sterującymi. Jeżeli byłby to jakiś układ specjalizowany, gdzie od razu...
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...
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)=...
Algorytm jest banalny. mamy tablice 40 bajtów (wartości jasności świecenia 40 LEDów). Resetujemy wszystkie porty. Tworzymy pętlę for I=1 to 255 (wartość 255 jest zarezerwowana dla ramki synchronizacyjnej) i w każdym kroku pętli sprawdzamy która wartość z tablicy ma wartość I i ustawiamy wartość 1 na pinie, który odpowiada LEDowi z tablicy. Zagmatwanie...
Kolego coś takiego wymyśliłem :[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 wyjścia Config Sda = Portc.1 'konfiguracja pinu magistrali...
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...
[syntax] Config Rc5 = Pind.3 Ddrb = &B11111111 Portb = &B00000000 Config Portd = Output [/syntax] Wystawiam na port B kolejno H i L w pętli. Do portów mam podłączone rezystory z zakresu 1.2k - 40k i o ile na porcie jest stan L to rezystancja wynosi 4.3k (nie ma takiej wartości w układzie) i się nie zmienia
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ą...
Nie sprawdzałeś wiadomości prywatnych :P Miałes tam link który mógłby się przydać. [url=http://mirley.firlej.org/node/1159]... 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ą...
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...
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ć...
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"?
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...
Comer3 Nic to nie dało po zmianie z portx.y na pinx.y przy sprawdzaniu stanów portu tak jak i cofig portx.y = input tu kod po korekcie $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.4 = Input 'pinb.4 jako wyjście = config Portb = &B00110000 (piny b.3 i b.4 jako output) Config Pinb.3 = Input 'pinb.3 jako wyjscie Config Portb.2...
Przy tak prostym problemie nie ma siły żeby nie znaleźć przyczyny. A co się dzieje gdy np. zamiast wszystkich tych ustawień portx = blebleble,pętli do loop i waitms w petli wpiszesz po prostu jakąś wartość do rejestru port (tego na którym masz te feralne diody) tak żeby się któraś z nich zapaliła. Też się jarzy czy pali normalnie? W ogóle jak patrzę...
no właśnie przez ten program padły mi 3 Atmegi8 To jaki program wgrywasz do procka nie ma nic wspólnego z tym co namieszałeś w fusach. Podaj więcej informacji o tym jak doprowadziłeś do ich blokady. Ja, pomimo że już atmeg dzieeeeesiątki zaprogramowałem, ZAWSZE najpierw odczytuję wartość fusów, potem ją edytuję i zapisuję z powrotem (chyba, że np....
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...
Ludziska. Skoro dodatkowy licznik programowy Wam się nie podoba, to trzeba kopiować wartość licznika sprzętowego do zmiennej i porównywać (mniejsze, większe) z tablicą wypełnień. Cały "PWM" wtedy należy przenieść do pętli głównej. Oczywiście Prescaler = 1 nie jest najlepszym rozwiązaniem w takim wypadku. Jeśli nie jest potrzebna dokładna synchronizacja...
Witam, osobiście bym zrobił to w ten sposób: 1)Jak masz "normal" i procesor wykona wszystkie zawarte w nim funkcje(procedury), wtedy dajesz Do...Loop...End i tam umieszczasz funkcję np. z if`ów która po naciśnięciu danego przycisku przenosi cię do następnego podprogramu(Sub`y), i tak w kółko. a/b) Tutaj możesz zrobić to na zasadzie, że w/w pętli dać...
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, jeżeli procek ma robić tylko to i nic innego to ja bym to zrobił tak: w pętli głównej programu, wysyłasz sekwencję pierwszego kroku na port, potem skok do procedury opóźnienia, w której czas jest uzależniony od wartości zmiennej 8 bitowej. Zmienna ta natomiast jest uaktualniana w przerwaniu od ADC a jej wartość to nic innego jak wynik pomiaru...
Wg opisanej zasady powinien działać poniższy program ‘ Program swiatła samochodowe – opis działania ' ‘ Po włączeniu zasilania, gaszone są swiatła postojowe i mijania ' (gaszenie w sensie wyłączenia przekaźników) ‘ Program czeka na pojawienie się sygnału zapłonu ze stacyjki ‘ Następnie program czeka na znikniecie...
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...
Obawiam się, że bez "sił zewnętrznych" typu przycisk może być ciężko... Można próbować poczynając od wystartowania timera połączonego z odczytywaniem wiszącego (nie podciągniętego) pinu albo lepiej odczyt stanu portu analogowego (z podłączonym czujnikiem temperatury, światła czy co tam kto jeszcze wymyślił) i w zależności od jego stanu przemielenie...
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"...
Co do resetowania to może i wystarczy, tylko czy tak to rzeczywiście ma działać (na okrągło). Jeśli tak to co z przejściem z zera? Należałoby z nóżki Q7 dać na wejście ładowania wartości w liczniku z D0-D3 ustawionym na 4. Co do układu na AVR to sprawa jest banalna. Jeden port odpowiedzialny za sterowanie wyświetlacza, drugi port za sterowanie LEDów....
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ą...
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)....
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
Schemat jest poprawny,sprawdzałem. po odczekaniu tez nic się nie dzieje,jest nadal 001. Pętla do loop niby działa bo gdy umieszczę w niej np. polecenie załączenia przekaźnika zapiętego na port po podaniu stanu niskiego to załącza. Na symulatorze działa normalnie tzn.licznik zwiększa wartość po każdej pętli, podział liczby na składniki też ok. wygląda...
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...
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...
Sprawdziłem i miałeś rację :) źle przeliczyłem wartoś (faktycznie jest kwarc/64) a co do rejestrów to okazuje się, że potrzeba wrzucić na stos rejesrtry: r0, r4, r17, r20, r24, r25, r26, r28 i r30. Niektóre np: r27 nie są używane (wg symulatora). Przy okazji odkryłem że jeśli ostatnim rejestrem odłożonym na stos jest np. r5 a zdejmowanie ze stosu zacznie...
nic panowie nie czytacie :P ładuje watrością nie 65000 tylko 55000 a to różnica :) Napisałem ze usiłuję uzyskać przerwanie 10ms przy kwarcu 8MHz w drugim poście. Jeśli chodzi o ustawiania portów itd to pomijam takie rzeczy żeby nie zaciemniać. Z tym że: Panowie na ten moment nie jest to problemem zupełnie ponieważ timer nie odpowiada nawet bez początkowego...
To jest mój pierwszy program w Bascomie a nie w ogóle. I moim zdaniem jest to coś prostego właśnie. Ale nie oto chodzi. Przetwornik ADC ma zmierzyć na początku jeden raz napięcie akumulatora ( pierwszy pomiar odrzucam bo może być niewłaściwy). Po stwierdzeniu, że napięcie jest poniżej wartości ustalonej dioda ma mignąć 3 razy żeby poinformować użytkownika...
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...
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...
ale co tu mówić do którego pinu co podłączam , sprawa hardware jest dla mnie jasna pinc.1 to wejście sygnału 1cylindra , portd.3 to wejście timera1 , potem mamy 4 wyjścia na portach C jeśli już tak wnikliwie pytasz , to atmega będzie "przylepiona" wewnątrz fabrycznego ecu , procesor będzie sterował fajkocewkami wyposażonymi już wewnątrz w moduły zapłonowe...
Myślałem nad takim rozwiązaniem tego: Pojawia się impuls na wejściu z fotorezystora i włącza się timer. W ciągu np. 3 sekund impulsy są zliczane (poprzez zwiększanie wartości zmiennej wewnątrz pętli sprawdzającej stan portu), po czym timer zostaje zatrzymany. Na podstawie ilości otrzymanych impulsów w ciągu 3 sekund oraz ilości otworów na tarczy można...
Witam Testuje termometr na dwóch Ds18b20 i żeby wynik wyświetlany był trzech wyświetlaczach 7seg. LED. Ma działać tak że najpierw pokazuje na 3 sekundy 1 temperaturę a po tym czasie na kolejne 3 sekundy pokazuje 2 temperaturę. Linie 1 wire podciągnąłem z rezystorem 3,3K do +5V. Wszystko działa temperatury się zmieniają i wyświetlają ale co jakiś czas...
ASC() help od takich rzeczy jest Próbowałem ale ja wysyłam z KOMPUTERA PC z terminala np. 0+Enter 75+Enter 255+Enter i chcę by CPU to odebrał i odbiera ale teraz chcę by te znaki zinterpretował jak "zmienną" o tej wartości 0 75 255 i wypisał np na PORT i tego nie wiem jak zrobić ? Autorze tematu, chyba nie bardzo rozumiesz kod, który stworzyłeś, hm......
1. Ładujemy pojemność diody LED(PA0 wyjście). 2. Ustawiamy PA0 jako wejście 3. odczytujemy wartość portu punkty 1. i 2. wystarczy zrealizować raz na początku programu czy należy powtarzać w każdym cyklu? chcę zrobić coś takiego: podłączyć do uC jedną led która pozornie nie będzie się świecić. po przysłonięciu jej np. ręką, lub innym obiektem, ma się...
Dzięki za pomoc :) chyba już sobie poradziłem. Wykorzystałem dwa sposoby, jeden z Timerem i czas wyszedł mi 928 us, a drugi z symulatorem i tam też udało mi się wyznaczyć ten czas, który wyniósł około 900us wiec chyba sie zgadza :) dodano 16:07: Hmm chyba jednak te dwa powyższe sposoby nie są jednak dobre, albo ja coś pokręciłem. Podłączyłem oscyloskop...
' 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...
Proszę bardzo: http://www.elektroda.pl/rtvforum/topic12... http://www.elektroda.pl/rtvforum/topic12... Oba napisane w Bascomie. Żaby pilot wykonał jakieś zadanie, konkretnie wysłał kod RC5: Config Portd.4 = Input Config Portd.5 = Output W1 Alias Pind.4 Do If W1 = 0 Then Waitms 30 If W1 = 0 Then Command = 1 Togbit = 0 Address = 8 Rc5send...
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ę...
Nie rozumiem narazie tego stanu. "mój tok myślenia" Jeżeli mam skonfigurowany portb.1 = output i nastąpi w programie stop timer1 to portb.1 powinien przyjąć stan 0 tak było w moim wcześniejszym przypadku wcześniejszy fragment: start Timer1 stan"0" wait 10 stan"0101010101010101010" stopTimer 1 stan"0" Dla mnie oczywiste było że skoro przed uruchomieniem...
- 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...
Witam Serdecznie :) Jestem początkującym elektronikiem i amatorsko konstruuje co nieco. Jako, że częstym narzędziem elektronika jest lutownica, do obecnej chwili wykorzystywałem starą transformatorów-kę firmy Lutola. Jednak przy większości prac nie spełniała moich oczekiwań między innymi ze względu na brak regulacji temperatury. Jako, że w miarę dobrze...
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...
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...
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...
eee tam. mi w bascomie 8051 nie chce działać przerwanie więc tobie pewnie też nie zechce. Co do wysyłania to ja bym to zrobił tak: print ">"; printhex zmienna_a; print "," printhex zmienna_b; print "<" lub: printhex ">";zmienna_a;","... spowoduje to wysłanie do portu czegoś...
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 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 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...
Wyświetlacz według tego programu masz na PORTB od 0 do 5 Przyciski chyba też (przynajmniej tak to wygląda w programie) :D Jeśli już będziesz ustawiał piny pod przyciski to pisze się: Config PINx a wewnętrzne rezystory podciągające włączasz w rejestrze PORTx gdzie x to litery portów. Nie ma więc sensu zapis Pinb.1 = 1 albo 0 - to po prostu nie ma sensu...
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
Działa elegancko. Żeby było wiarygodnie to nawet wygrzebałem Ardu Leonardo z m32u4 na pokładzie. Na jedną rzecz bym jeszcze uważał. Twój kod nie jest w żaden sposób synchronizowany. Może się kiedyś zdarzyć, że jedna z wiadomości nie dojdzie. Z nie będzie miało wartości 3 i przy nastepnej wiadomości procesor zacznie przypisywać wartości innych zmiennych...
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...
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...
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...
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...
Oki, udało się z tym, że wychodzi następny problem mianowicie w momencie rozpoczęcia transmisji aktualizuje zmienne, wyświetla ich wartości, ale niestety po odebraniu każdego słowa resetuje wartość zmiennej S i zaczyna odliczanie od nowa, co jest tego przyczyną ? Rozumiem, że komenda return powoduje powrót do miejsca gdzie przerwano wykonanie programu....
Dzięki kolego za kod, widzę że jest to kod obsługi jakiegoś zegarka, bardzo podobny kod znajduje się u M.Wiązania. 'Program multipleksowego sterowania czterema wyświetlaczami '7-segmentowymi LED poprzez dekoder 4543 'cyfra załadowana do A będzie wyświetlana na wyświetlaczu 1 'cyfra załadowana do B będzie wyświetlana na wyświetlaczu 2 'cyfra załadowana...
Ogólnie nie pisze w bascomie. Rozumiem jak coś jest napisane, ale samemu raczej nic nie wymodzę. Załączyłem schemat z podstawowymi elementami każdego układu z mikrokontrolerem (kondensatory filtrujące, pull-up na resecie) http://obrazki.elektroda.net/10_12568564... Jedna dioda podpięta do wyjścia OC1A - wyjście PWM. Atmega8 ma jeszcze 2 takie...
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . Skoro program spełnia oczekiwania programisty, to musi byc dobry! Niemniej jednak te 3 przedstawione...
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...
Zamieszczam program w bascomie, który jest dosyć niezoptymalizowany więc proszę się nie czepiać tylko ewentualnie udzielać wskazówek... Proszę bardzo :D Staraj się jak najmniej korzystać z funkcji cls, która jest nie przyjemna dla oka. Tekst statyczny umieszczaj przed pętlą, natomiast zmienne wartości przez nadpisywanie wspierając się spacjami, gdy...
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 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: http://www.elektroda.pl/rtvforum/topic10...
Witam. Mam problem, który mam nadzieję uda się rozwiązać (wytłumaczyć) z Waszą pomocą. Bascom w wersji 1.11.8.3. Otóż podczas przerwania generuję liczbę pseudolosową i posyłam ją na port szeregowy. Przerwanie jest generowane przez Timer2 taktowany "kwarcem zegarkowym" o częstotliwości 32768 Hz - co 0,25s. Liczba ma być z zakresu 0 do 75, a więc: Losowa_waga...
Piotrek1970 - całkowicie się z tobą zgadzam jeśli chodzi o wartość developerską Arduino. Ja miałem na myśli, że w miarę proste konstrukcje, przy odrobinie doświadczenia, można a nawet warto zrobić "od strzału", z dedykowanymi rozwiązaniami. Początkującym jak najbardziej polecam rozpocząć z gotowym hardware. Hanslik - jeśli wolno mi zaproponować, wejdź...
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ść...
Nie dziaduj :D Jeśli masz chociaż jeden wolny pin w układzie to otwórz na nim softwarowy uart. To tak proste że nie wiem do czego porównać :D Printbin #5 , Tempword albo Print #5 , Tempword cokolwiek będziesz chciał... Możesz w pętli cały bufor..no Sky is the limit EDIT. Co do Twojego poprzedniego pytania. Przerwanie jest obsługiwane za każdym razem...
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....
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...
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....
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...
Wybaczcie początkującemu, bo pytam zapewne o jakąś strasznie trywialną sprawę, ale póki co nie mogę sobie z nią poradzić, więc szukam pomocy. Piszę sobie cośtam. Cośtam ma multipleksowo obsługiwany wyświetlacz LED, multipleksowanie jest załatwiane podprogramem uruchamianym z przerwania od T0. Tyle napisałem i tu wszystko działa pięknie. Dalej, przed...
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...
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...
Witam Chciałem zbudować termometr z 64 czujnikami DS18B20, na układzie Atmega 2560. Konfiguruje sobie każde wyprowadzenie portu po kolei jako 1-wire. Do 44 czujnika temperatury są odczytywane, jeśli wprowadzę 45 czujnik w programie to po przejściu pętli do czujnika T1 otrzymuję wartość 0 stopni na każdym z czujników, jeśli mam 44 czujniki to wszystko...
Witam Analizując http://www.elektroda.pl/rtvforum/viewtop... 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...
Do tech-com: Jeszcze raz sprawdziłem i faktycznie działa, a więc zwracam honor. Poprzednio przeoczyłem, że miałem nie wiem po co apostrof przed end. Marcus, za moment przeanalizuję poprawiony kod i naniosę konieczne poprawki. Bardzo dziękuję za wszelką krytykę. Dodano po 24 Zastosowałem się do wskazówek, ale program w ogóle nie stosuje obsługi przepełnienia...
Czas transmisji bajtu po I2C przy 100kHz (Arduino tyle nie wyciąga, przynajmniej na AVR) AVR tak, Arduino nie. Sprzawdziłem organoleptycznie. Kolega sprawdzał na PCF8574? Owszem, w bibliotece dla LCD po I2C na czas transmisji do niego, rejestr predkości jest ustawiany na 400kHz, następnie przywracana poprzednia wartość. Nie pamiętam jaką ale nie było...
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...
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 http://obrazki.elektroda.pl/2811327600_1...
Witam chciałem zaprojektować sobie oświetlenie schodów podobne do tego na filmiku http://obrazki.elektroda.net/21_12309139... 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ć...
hehe no racja, akurat to wcześniej pisałem a nie kopiowałem z kodu ale nie wątpię że w kodzie się nie pomyliłem. ;) [syntax=c]#include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> #include<avr/pgmspace.h> #include<avr/eeprom.h> #include<avr/wdt.h> #include <avr/io.h> #define CLK_PIN (1<<PD0)...
bascom pętli bascom odczyt portu bascom timer2 portu
schemat monitora flatron schemat schneider kamera chmura
elektrotechnika zaocznie hewalex sterownik
Usterka siłownika chłodnego powietrza w systemie HVAC Kod B1352 w module hamulca parkingowego Jaguar S-Type