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)=...
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
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...
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ą...
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...
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...
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...
' 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...
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ść...
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...
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...
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...
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...
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...
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...
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 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 '*************************************.....
Najtrudniej analizuje się własny kod, bo zawsze patrzy się przez pryzmat wiedzy o tym co on powinien robić i nie dostrzega się drobnych błędów :) Zgadzam się z tym w 100%. Przy Bascomie rzadko sięgałem do PDF'ów kontrolerów, przy C nie da się bez tego wszystkiego zrobić. Bez tych 500 "przekręceń" licznika nawet w Bascom by nie poszło, jak zwykle zbyt...
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...
Przepraszam oczywiście Ahcinga masz racje. Zaraz to zmienie. Blad wynika pewnie z oznaczeń portów b.0 i b.1 musiałem potraktować to z rozpędu to jako wartośc. Ja bym zamiast elseif uzył kolejnej pętli warunkowej if...then..., ale to raczej kwestia przyzwyczajenia Pozdrawiam P.S No, no pierwszy raz widzę żeby któraś z "young lady" udzielała sie w dziale...
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...
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...
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...
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 =...
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...
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...
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.
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...
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...
Karol, miałem Ci napisać :P przez komunikator.. :D ale pisze tu.. może się przydać komuś :) pierwsze co to podam Ci pętle na 1us :) przy 16MHz w kodzie ASM $asm ldi R21, 0 delay_1us: inc R21 cpi R21, 4 brlo delay_1us $end asm lub pisany kod z głowy :P ale jeszcze do udoskonalenia... :P całego przerwania na podstawie ostatniego Twojego skrawka kodu......
Ten fragment nie jest najwłaściwszy, bo niewiele z niego wynika. Przeróbkę należy rozpocząć od odnalezienia warunków odpowiedzialnych za porównywanie aktualnego czasu z czasem w którym ma zostać załączony buzzer. Rozumiem, że w oryginale istniała możliwość 'nastawiania' czasu załączania buzzer'a. Dalej odnaleźć fragment odpowiedzialny za sprawdzania...
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...
[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
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...
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ć...
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ą...
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...
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ą...
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...
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...
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...
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...
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"...
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....
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ć...
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...
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...
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...
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 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ę...
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...
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...
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...
dziękuje za odpowiedz, ja nie konfiguruję rejestrów max'a bo tak jak wspomniałeś takich nie ma, mówię o konfiguracji mikrokontrolerów, i rejestrów typu częstotliwość taktowania SPI, fazy zegara, konfiguracja portów. Program żeczywiście powinien być bardzo prosty... piszę w C, BASCOM'a nawet nie "liznołęm". Teoretycznie jednak coś nie chce działać, dlatego...
- 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...
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...
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...
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...
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...
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...
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 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...
Dla 51 można zrobić np. tak: p1 = 0 'to ten sterowany port p3 = 255 ' to port z przyciskami Do if p3.0 = 0 then gosub zapalanie_od_p1.0_do_p1.7 ' jesli przycisk na p3.0 wcisniety to skacze do etykiety "zapalanie_od_p1.0_do_p1.7" if p3.1 = 0 then gosub zapalanie_odwrotnie if p3.2 = 0 then p1 = 0 'dodatkowy przycisk czyszczący port p1, można to samo robić...
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...
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...
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...
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...
Tak jestem pewien,że te kilka ms wystarczy. A miałeś kiedyś w ręce taką latarkę sterowaną z uC ? Wszystkie one tak właśnie mają przełączane tryby i podtrzymanie przez kondensator wystarcza. Ale jak to zwykle bywa nie wszystkim odpowiadają tryby oryginalne czy wybieranie ich przez jeden klik , więc zmieniają sobie oprogramowanie. Wybieranie przez jeden...
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...
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...
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 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...
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...
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 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...
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 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...
Przepisałem cały kod jeszcze raz i poprawiłem tu i ówdzie Problem jest następujący. Pętla główna ignoruje fizyczne zmiany na portach i za diabła nie chce odpalić. Jeśli na sztywno wpiszę np C = 9 to program działa poprawnie i ustawia częstotliwość przypisaną do wartości 9. Kombinowałem jak kolega mówił z portami. Zrobiłem porty podciągnięte do zasilania...
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...
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...
Co myślisz o tym żeby użyć tylko jeden Timer? [youtube]https://www.youtube.com/watch?v... [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 :...
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. potrzebuję odmierzyć równo 1 sekundę, przykład wziąłem z kodu : http://obrazki.elektroda.pl/8005169500_1...
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....
dobra poczytałem i wiem na razie tyle: I2cstart I2cwbyte [adres urządzenia podporządkowanego do zapisu], Ack I2cwbyte [bajt do wysłania] ............ (wysyłanie kolejnych bajtów) I2cwbyte [ostatni wysłany bajt], Nack I2cstop tylko ze tu jak dobrze rozumie trzeba każdą informacje wysyłaną na wyświetlacz wpisywać po kolei...
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ź...
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...
Dzięki za podpowiedź. Będę mógł sprawdzić dopiero pod koniec tygodnia. Niestety dopiero teraz, jak "mam mokro w gaciach" wczytałem się w datasheet i wyględa na to, że zupełnie niepotrzebnie kombinowałem, bo miałem ustawione wszystko jak należy. Mam jeszcze jedno pytanie, ale dotyczy ono raczej assemblera i 1wire. Każdy, kto dłubie w asm, zostaje zmuszony...
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....
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...
Przykład bardzo pomógł teraz bardziej już rozumiem tą całą transmisję jednak nadal nie udaje mi się odebrać temperatur. Nie wiem czemu bo widzę że ta funkcja działa wyświetla mi liczby i to zmienno przecinkowe jednak nie mogę znaleźć logiki w uch wartościach Case "3": Printbin Temp1 Printbin Temp2 Case "4": Printbin Temp1...
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...
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ć...
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...
W terminalach monitorując port COM nic nie zobaczysz, bo BootLoader bascomowy czeka na sygnał 123 z programu wysyłającego Firmware. Sam Boot Loader w żaden sposób nie zgłasza swojej gotowości. Też tak mi się zdawało (nie wnikając nawet w kod bootloadera) - można się tego domyślić obserwując konsolę aplikacji bootloader na PC od MCS. Przy uploadzie...
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 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...
Jakiś postęp jest ale jeszcze długa droga przed Tobą . Mikrokontroler = uC 1 schemat gdzie masz minus zasilania ( gnd ) dla uC ? . Schemat wygląda lepiej ale to nie to , po co stabilizator dla serw ? , po co LM317 ? . Stabilizowane ma być napięcie dla mikrokontrolera a nie dla serw , zasadą jest kondensatory jak najbliżej nóżek uC oraz od strony wejścia...
Już któreś z kolei podejście do tematu jednak dalej brak rozwiązania Problem wygląda tak: Potrzebuję termometr na dwóch DS 18B20 Na razie zaprzęgłem jeden i w pętli co kilka sekund (czyli co kilka pomiarów) wyświetla mi 0,0 st C lub inną absttrakcyjną wartość np 95,5 przez jeden pomiar. Próbowałem różnych rozwiązań na chwile obecną program wygląda mniej...
bascom pętli bascom odczyt portu bascom czytanie portu
volvo silnika przeponowy naczynie agregat prądotwórczy pompa wtryskowa
szczoteczka soniczna szczoteczka soniczna
Przełącznik zespolony w quadzie 110 nie działa - co sprawdzić? Programowanie biorytmów na Arduino GIGA Display