Witam ! Oto program napisany w Bascom AVR na ATtiny2313. Myślę zę sobie poradzisz ze zmianą na Megę8. Odczytuje on Adres i Rozkaz kodu Rc5 i wyświetla na wyświetlaczu LCD. $regfile = "attiny2313.dat" $crystal = 10000000 Config Lcdpin = Pin , Db7 = Pb.2 , Db6 = Pb.3 , Db5 = Pb.4 , Db4 = Pb.5 , E = Pb.6 , Rs = Pb.7 'Config Lcd = 16 * 1a Config...
Pomoże Ci mój mały projekcik na szybko: http://www.elektroda.pl/rtvforum/topic28... Napisałem tam dekoder rozkazów w bliźniaczym standardzie. Dekoder jest w plikach ir.c oraz ir.h Używany też jest timer (inicjalizacja w main). Program do super eleganckich nie należy gdyż nie korzysta on ze sprzętowego przerwania (akurat nie miałem na płytce wyprowadzonych...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Witam, na szczęście prawie każdy procek z serii AVR (mówię o nich bo na nich najczęściej robię a nie żeby inne się nie nadawały ;) ), posiada możliwość skorzystania ze sprzętowo wbudowanego rozwiązania aby generować sygnał PWM, dzięki czemu nie trzeba aż tak dużo kodu programu pisać. Jednak piszesz że programujesz tylko w Bascomie więc poleciłbym jednak...
Programator to atmega8 + trzy zatrzaski 74hc574 (aby procesorowi starczyło wyjść). Do tego gniazdo ZIF aby ułatwić wkładanie i wyjmowanie pamięci. Do tego zaprojektowany przezemnie protokół przesyłu danych - pc wysyła do mikrokontrolera po r232 paczki danych (po 255 bajtów każda) z sumą kontrolną. Jeśli suma się nie zgadza - atmega żąda przesłania paczki...
https://obrazki.elektroda.pl/7927867900_... Jak mówi słynny dowcip - każde urządzenie elektryczne po włączeniu do prądu działa lepiej. Zasilacz (lub bateria czy panel słoneczny) jest integralnym elementem każdego sprzętu. Kiedyś zasilacze projektowało i konstruowało się razem z urządzeniem. Dziś, w dobie tanich zasilaczy impulsowych...
Zobacz w Helpie Bascoma, rozkaz DEBOUNCE Px.y , state , label [ , SUB] w szczególnie Config Debonuce
http://obrazki.elektroda.pl/5214176000_1... Witam. Przedstawione rozwiązanie powstało z myślą o zdalnym (radiowym) sterowaniu modelem samochodu. Umożliwia płynne regulacje: kierunku (lewo/prawo) oraz prędkości ruchu (przód/tył). Rozkaz typu "włącz/wyłącz" pozwala np. uruchamiać sygnał dźwiękowy (klakson) lub włączać światła. Spośród...
Cze, masz jakis patent na programową zmianę fusebits w ATmega8 przez program obsługiwanego procesora? Czy to jest ten nieznany mi rozkaz BZDURA w asemblerze? Próbowałem w Studio ale kompilator wywala mi ERROR? Co robić w tej sytuacji? Podaj proszę więcej szczegółów, może składnia rozkazu niekompletna? Pzdr. N.
Nie znam działania programatora HV ani jego sposobu programowania więc ciężko mi stwierdzić co jest nie tak z kodem od strony funkcyjnej. Podeślij jakiś link dot. działania tego programatora to zobaczymy co dalej. A co do samego sposobu pisania to masz kilka kwiatków w kodzie które nie są mistrzostwem w programowaniu: ldi r29,0b01000000 a to co Ty wpisałeś...
Ja mówię o różnicach w ASM. Tych swoją drogą pomiędzy ATMega8 a 88 nie ma za dużo (w sumie nie widzę żadnych ale nie przyglądałem się specjalnie). A gdyby nawet były to rozwiązuje je kompilator C. Tak jak np. rozwiązuje brak rozkazów mnożenia w mikrokontrolerach ATTiny. Albo różnice w dostępie do rejestrów SFR poprzez STR albo OUT. Kod w C wygląda tak...
A ma może ktoś prosty program w Bascomie na ATmega8 i tsa6057 który zaraz po załaczeniu zasilania wyśle do syntezy rozkaz ustawienia np 88,4MHz bez zabawy z przyciskami i LCD... ewentualnie jeszcze kontrola diodą Led o prawidłowym przesłaniu danych
Opóźnienia bramek z seri 40xx to ok 40ns, HC TTL to ok 8 ns. Jak chcesz sybsze ukłądy przejdź na CMOS TTL np 74HC166 o ile dobrze pamietam. Jednak nawet te 40ns nie powinno zaszkodzić , jak się ma to do czasu wykonywania programu gdzie jeden rozkaz to 2 cykle zegara a najszybsze 20MHz jakie jest stosowane daje szerokość impulsu zegarowego 50ns. Opóźnienia...
Witam. Kolego pawel26021995 do wyjścia z pętli while() {..} powinieneś zastosować rozkaz break a nie continue .
Możnaby wysyłać dane do AVR przez UART, a AVR zapisywałby to sobie w EEPROMie i tylko wystawiał komunikaty potwierdzeń. Inna możliwość to zastosowanie bootloadera, z tym, że nie bawiłem się tym jeszcze i nie wiem czy jest możliwość zmiany określonego obszaru w pamięci flash, czy trzeba załadować cały program. ATmega8 na przykład ma też rozkaz spm (store...
Mam prośbę. Po pierwsze zrób małą zmianę. w pętli Do Loop napisz zamiast tamtego kodu ( który wyrzucił zumek) następujący kod[syntax=basic4gl] wait 1 TCCR1B=&B00000000 'Zatrzymanie Timera wait 1 TCCR1B=&B00000010 'Uruchomienie Timera [/syntax] Jeśli zadziała to sprawdź czy działa instrukcja if. Wstaw w jej wnętrze po if załączanie diody na jakimś wyjściu...
A nie łatwiej wysłać mu polecenie RS'em 232. Wysyłasz mu odpowiedni znak a mikrokontroler reaguje na dane polecenie w odpowiedni sposób. Trzeba by zrobic tablice rozkazów, jak ma zareagowac na odpowiedni rozkaz ale to nie powinno być dla Ciebie problemem. Proopnował bym na początek zrobic tak aby podpiąc wyświetlacz LCD a z drugiej strony poprzez atmega...
(at)ASMnauka_ Zastanów się jeszcze raz nad tym co piszesz. :) Zobaczmy więc co w przypadku rozkazu LDI proponujesz początkującemu w assemblerze autorowi tematu: http://obrazki.elektroda.pl/1689085600_1... a co proponuje wskazana przeze mnie dedykowana temu celowi dokumentacja: http://obrazki.elektroda.pl/3092759500_1...
Mam jeszcze pytanie, dlaczego jest tak, że gdy przycisk jest naciśnięty jest 0, a gdy zwolniony jest 1? Ponieważ włączony wewnętrzny rezystor pull-up (podciągnij w górę) podłącza ten pin do Vcc. Zatem jeżeli nie naciskasz przycisku masz na wejściu jedynkę. Jeżeli naciśniesz przycisk zwierasz do GND, czyli masz na wejściu zero. Gdybym podpiął do VCC...
E tam zaraz at89C2051... czego wszyscy tacy uparci na tego procka to ja nie wiem... może ktoś poda zalete o której nie wiem ( chyba ze zegar troche większy ale co z tego jak rozkaz i tak sie nie wykona w jednym cyklu zegarowym a w Atmega8 sie wykona) Ja z kolei jestem uparty na Atmega8 bo fajniejszy i ma przetwornik z multiplekserem i duzo innych bajerów....
Witam serdecznie, Jako nowicjusz w branży robotów z byle czego (mój z 2 walkmanów) chciałbym poradzić się Was w sprawie "dobrych praktyk" przy wyborze rozwiązania (algorytmu) poruszania się robota. Mam robota 3 kołowego (2 koła napędzane osobnymi silniczkami DC + trzecie koło obrotowe. Wszystko działa prawidłowo - bączki kręci dość sprawnie - prostą...
Witam Przyczyną wydaje się być fakt, że po odebraniu danych i przypisaniu ich do zmiennych wykonujesz rozkaz ale nie zerujesz zmiennych. Wystarczy przy wyjściu z warunku wpisać: Pm=0: Adres=0. Warto w warunku sprawdzać czy adres się zgadza a nie tylko komenda. Jeśli pilot będzie obsługiwał np. magnetowid to dojdzie do bzdurnego działania. -- pozdrawiam...
Witam. We wstępie chciałem zaznaczyć, że szukałem podobnych problemów, lecz bezskutecznie. Mój problem polega na tym, że po wgraniu poniższego kogu do mikrokontrolera atmega8, na wyświetlaczu LCD wyświetla się napis "*temperatura* wynik: -0,1 stopnia C", brak reakcji na zmiany temperatyry czujnika cały czas -0,1stopnia. [syntax=basic4gl] $regfile...
Czy ten program jest poprawny? Jak dodać drugi czujnik ? $regfile = "m8def.dat" 'proc = atmega8 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 'konfiguracja LCD Config Lcd = 16 * 2a Config 1wire = Portd.5 Config Pind.6 = Input Config Pind.7 = Input Dim Odczyt(2) As Byte...
Witam wszystkich. Mam mały problem programowy odnośnie SPI. Tak wygląda mój program wysyłania danych przez spi Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 16 , Noss = 1 Dim W As Byte Declatr sub _spi SPIINIT do ' program główny w = 10 call _spi print W Loop Sub _spi ' tu realizowane jest wysyłanie...
Sprawa wygląda tak - działa - błąd pomiaru względem (bazarowego) termometra cyfr wynosi ok 0,3*C -0,5*C wiec jest dobrze : ) Dzięki za pomoc i wsparcie: Teraz dla wszystkich napisze co było źle: -nasze funkcje różnią się nieznacznie i mój kod był względnie dobry ale funkcja odczytu temperatury (u mnie main) była błędna: float temp = 0; sprawdz = RESET_PULSE();...
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejcia magistrali 1-wire Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5 'Deklaracja wszystkich zmiennych potrzebnych do pracy programu Do 1wreset 'reset...
ad.1) 33h , to kod rozkazu READ ROM przesyłany przez mastera di iButtona ad.2a)Działa tak , jak to widać ma str.6 Figure 6 , czyli owreset resetuje magistralę 1wire i zwraca bajt , który informuje czy "wykryto" PRESENCE PULSE(return !=0) , czy też nie (return=0). ad.2b)Master wysyła do iButtona 8 bitów reprezentujących rozkaz 33h ad.2c)Master odczytuje...
Czekaj, czekaj, rozpędziłeś się z tym "asynchronikiem"...Wlasnie zajrzałem w datasheeta tego twojego sc16311 i: 1) to nie jest zaden asynchronik/uart/rs232 i pochodne 2) TO JEST SPI!!! Masz jak wół napisane "CLK - clock input". Czy asynchroniczna transmisja potrzebuje zegara? zastanów się.... Ten scalak jest fajny, nie wiem na co narzekasz. Duze mozliwosci...
Witam. Mam uP Atmega8 w ktorym wykorzystuje przetwornik ADC. Na stronie 32 PDF'a jest opisany tryb redukcji zaklocen dla przetwornika ADC. Niestety mam problem zeby to uruchomic (zaimplementowac w AVR-GCC). Moze ktos mi powie co robie nie tak... inicjalizacja: (tylko redukcja zakłóceń - przetwornik jest ustawiony i dziala w trybie pojedynczej konwersji)...
Myślałem, że tryb 4bit jest dla oszczędzenia wyprowadzeń w uC ale żeby go włączyć musze chyba działać w trybie 8bitowym bo jak mam wysłać do LCD informacje o trybie 4bit przesyłając dane 2x4bit skoro jestem jeszcze w trybie 8bi :). Bo służy do oszczędzania pinów ;) Jak popatrzysz na rozkaz przełączający w tryb 4bitowy to jego młodsze 4 bity (te które...
Spróbuj oto ten kod: '---------------------------------------... ' ' Termometr z DS18B20 ' '---------------------------------------... $regfile = "Attiny2313.DAT" $crystal = 2000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6...
Musisz opracować własny protokół wymiany danych. Jeśli rozkaz wraz z jakimiś dodatkowymi bajtami ma np. 5 bajtów, to warto odbierać je do jakiegoś bufora i dopiero po odebraniu wszystkich rozpoznać jaką paczkę danych odebrano. Z reguły o tym co dana paczka zawiera decyduje co najmniej pierwszy bajt lub kilka jego bitów. Równie dobrze może to być aż...
Co do zastosowanego programu to codevision, a mój kod trochę zmodyfikowałem i wygląda na to że działa bo przesyła sobie nawzajem tablice. Tylko nie wiem czego mimo zadeklarowanej tablicy w MASTER zamiast 4 odczytuje mi 255. Wygląda to tak że gdy dostanie rozkaz wyślij tablice: SLAVE wysyła 1,2,3 do MASTERA i master to zapisuje w tablicy. W tym samym...
Chciałem zrobić pomiar napięcia i temperatury na atmega8 i mam problem z przetwornikiem. Pod kanal 0 ADC0 podłączony mam potencjometr 100k a pod kanal 1 ADC1 mam podłączony lm35. Problem polega na tym, że jak kręcę potencjometrem to wartość temperatury mi się zmienia. Dlaczego tak się dzieje? Oto kod: #include <avr/io.h> #include <util/delay.h>...
Wygrałem w końcu batalię z Atmegiem i LCD i mam następny problem... Działać miał cyfrowy termometr oparty na 1wire i DS1820... Miał ale nie działa. DS podłączony poprawnie (zasilanie i szyna pod PD.5). Kożystam z programu pana P.Góreckiego (przykład napisany na potrzeby książki "Mikrokontrolery dla początkujących" na AT90S2313 z kwarcem 4 MHz). W ATmegu...
Cześć, Na początku chciałbym się przywitać, gdyż jest to mój pierwszy post na Elektrodzie :) Wiem, że odgrzewam kotleta zadając pytanie w takim starym temacie, ale mam tutaj jedną niejasność. Chodzi mi o ostatnią linijkę funkcji lcd_init: lcd_send_register(0x0c); //13 Witamy na forum :) Staraj się nie pytać autorów tematów sprzed 7 laty - po prostu...
Trochę wiem o tym. COM w systemie jest jakimś tworem trochę programowym a LPT bardzo sprzętowym. Jest nawet taki rozkaz procesora Intel do wysyłania przez LPT. Skoro tak to trochę się zdziwiłem że istnieją sterowniki które pozwalają to obejść. Widocznie źle słyszałem. Mnie ten kabel kosztował 15zł (jeden). Kolesie raczej nie będą ich teraz chcieli a...
Najpierw ładujesz do procka program bootloadera przy pomocy programatora. Wcześniej ustawiasz fuse bity, miedzy innymi określasz obszar bootloadera. aha, ok - rozumiem, że odpowiednie ustawienie Fuse Bits pozwala na "przestawienie zwrotnicy" w kierunku pamięci Boot Loadera (a nie jak to zwykle do pamięci flash, tej w której odrazu program zaczyna działać)...
Bascom powinien po wywołaniu procedury obsługi przerwania skasować flagę a tego nie robi...i po obsłużeniu przerwania znów jest ono natychmiast wywoływane i program się zapętla. Trzeba ręcznie ustawić flagę w rejestrze GIFR.. Ale posłuchaj, Bascom nie wywołuje żadnej procedury obsługi przerwania. To ty piszesz ją w Bascomie i jest ona wywoływana automatycznie...
Witam Tworze sobie prosty termometr na wyświetlaczu 7 segmentowym. Napisałem kod w bascomie i wrzuciłem na płytę testowa z atmega32 i śmiga jak trzeba. Kolejnym krokiem było wrzucenie tego na na atmege8 (zmieniłem m32def.dat na m8def.dat i taktowanie na 1MHz ) atmega świeża , fusebity nie zmieniane. No i jak zwykle u mnie to bywa, rzecz nie działa....
Witam! Pierwsze kroki z uC, czyli próba stworzenia zegara matki dla czasomierza podobnego do $regfile = "m8def.dat" $crystal = 2000000 Config Pind.0 = Output Config Pind.1 = Output Config Timer1 = Timer , Prescale = 64 Dim Licz_2s As Byte Dim Parz As Bit Enable Interrupts Enable Timer1 Load Timer1 , 62500 Licz_2s = 0 Parz = 0 Do Loop End Odmierz_1m:...
Witam, Wiele tematów czytałem na ten temat ale wszystkie sugestie po zastosowaniu nie rozwiązały naszego problemu. Otóż: ATMEGA8 programowana od jakiegos czasu w na testowej bazie obudowa DIL - program napisany działa poprawnie Zamówiliśmy płytkę pod atmega8 TQFP i tutaj pojawil się psikus. Płytka zmontowana program wgrany fusbity ustawione układ działa...
Witam serdecznie, jestem początkującym jeśli chodzi o programowanie w c na avr. Celem mojego zadania jest zaprojektowanie termostatu z użyciem czujnika temperatury dwóch diod sygnalizujacych, przycisku do programowania termostatu oraz przekaźnika jako elementu wykonawczego. Poniższy kod napisałem na atmega8 jednak można byłoby zastosować uboższego avr...
Oczywiście że jest to wykonalne. Akurat robienie czegoś na mikrokontrolerach nie nauczy Cię elektroniki tylko programowania, ale skoro chcesz takie urządzenie to nie ma wyjścia. Trzeba zatem wybrać jakiś mikrokontroler, a raczej jego rodzinę. Może nie powinienem przeprowadzać wywodów na temat wyższości jednej rodziny procesorów nad drugą, ale to zrobię....
Napisałem wersję "new core" dla tego projektu. Niestety zajmuje 82 procent flasha w Atmega8 Dlatego w załączniku jest skompilowane archiwum. W przyszłości planuję napisanie programu, który w łatwy sposób pozwalałby edytować dane w EEPROM, czyli zmieniać treść SMS i numery telefonów. [syntax=vb]'****************************...
Jestem początkującym w C. Napisałem sobie kilka funkcji sterujących wyświetlaczem LCD (1x16). Przy taktowaniu 1Mhz wszystko pracuje znakomicie. Przy innych częstotliwościach mikroprocesora (2, 4 i 8Mhz) wyświetlacz nie pracuje poprawnie, wyświetla niepełne napisy lub przypadkowe znaki. Mikrokontroler jest taktowany wewnętrznym generatorem RC. Oczywiście...
Witam. Napotkałem na pewien problem podczas programowania swojego układu. Otóż w momencie kiedy w pętli while mam tylko: PORTD&=~1<<PD5; , tzn kod pętli while wygląda tak : [syntax=c] _delay_ms(1000); PORTD&=~LED_SYG1; PORTD^=POMPA;[/syntax] Przekaźnik już nie cyka. Nie chodzi tu o zawieszanie się procesora, gdyż jak dołożę linijkę odpowiedzialną...
Mam ATMega8 i podłączony do niego wyświetlacz LCD (8 znaków, 1 linia). Po wpisaniu poniżeszgo programu nie ma żadnej konuikacji z LCD. Dane do LCD wysyłane są po 4 bity. Używam kompilatora winavr. Gdzie zrobiłem błąd?? plik lcd01.h #ifndef LCD_H #define LCD_H #include <avr/io.h> #include <stdlib.h> #include "avrlibdefs.h" #include...
Witam, mam płytkę z atmega8 LCD 2x16 i ds18b20, wszystko podłączone w moim mniemaniu prawidłowo, sprawdzałem, oglądałem schematy w necie i wygląda ok. ściągnąłem m.in z tego forum procedury do obsługi LCD i DS18B20, ale chyba to ze soba nie współpracuje bo wyswietla mi na lcd cały czas "temperatura 127,9375" gdyby ktoś był tak uczynny i przyjrzał się...
rozkaz wyświetlacz licznik rozkaz rozkaz komputerowy
równania kwadratowe zakresy watomierza radmor 5102t przestroić
wordpress serwer kabel brake radio
Demontaż szyby w piekarniku Ariston F48 - krok po kroku Peugeot Partner 2003 – pikanie po odpaleniu silnika, BSI, płyn hamulcowy, AIRBAG, Eolys