Proponuję zamiast INPUT użyć INPUT_PULLUP.
Dla tego napięcia powinien być opornik ok.220-470ohm , drugą końcówkę podłącz do + zasilania , bo procek ma obciążalność 20mA przy stanie niskim.
Witam. Dla czytelności Waszych kodów... Autor tematu: michas: michas powiedział chyba wszystko, co trzeba było powiedzieć co do samego kodu i kilku zawartych w nim błędów, a ode mnie jeszcze pytanie - czy zadbałeś o filtrację zasilania Twojego uC ? Jest to wbrew pozorom bardzo ważny temat jeśli chcesz, żeby nawet takie proste miganie LEDem działało...
Na poczatku daj dyrektywe $crystal=1000000. ATmega fabrycznie pracuje z wewnetrzny zegarem 1MHz mimo podpietego kwarcu. Trzeba przestawic fusebity zeby zmusic procek do pracy z kwarcem. Pozdro Dexter
rezystancje są 8,2kilo i 0,5kilo zobacze z tym kondensatorem i dam znac narazie dzięki
Zapomniałem o najważniejszym, nie masz w programie definicji procesora i taktowania. Oto przykład dla Atmega8 (at) 8 MHz $regfile = "m8def.dat" $crystal = 8000000 Daj to na samym początku programu. Aczkolwiek, Twój program się nie kompiluje, zamiast tych zmiennych bitowych oznaczających przekaźniki zastosuj aliasy.
w załączonym fragmencie nie masz kropki w m8def.dat program $regfile = "m8def.dat" $crystal = 1000000 Config Portd.0 = Output Led Alias Portd.0 led = 1 do led = 0 waitms 500 led = 1 waitms 500 loop end działa (sprawdzałem na płytce bez rezystora pod resetem) ale nie to jest problemem
Żeby sterować diodą za pomocą atmegi należy wykonać szereg kroków w odpowiedniej kolejności 1. poczytać o mikrokontrolerach 2. poczytać datasheeta od danego mikrokontrolera 3. zakupić układ, złożyć, podłączyć 4. napisać program, zaprogramować Pominąłeś dwa pierwsze kroki. Nie dziw się, że nikt nie chce ci odpowiedzieć. Po prostu rzeczy o które tutaj...
po $crystal podawana jest częstotliwość w Hz, więc 1000000 jest ok dla domyślnie skonfigurowanej atmegi8. Z resztą to lepiej ustawiać w opcjach kompilatora. Aha i zamiast pisać: Do Waitms 250 Portb.0 = 0 Waitms 250 Portb.0 = 1 Loop wystarczy Do Waitms 250 Toggle Portb.0 Loop a to, że pierwszy listing działał wynika chyba z tego, że za każdym razem sprawdzane...
Zapewne podczas programowania nie wybrałeś przy pomocy FuseBits zewnętrznego rezonatora kwarcowego. Domyślnie ATMega8 korzysta z wewnętrznego oscylatora RC 1 MHz.
Spróbuj tak. $regfile = "m8def.dat" $crystal = 1000000 Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Do Toggle Portc.0 Waitms 250 Toggle Portc.1 Waitms 250 Toggle Portc.2 Waitms 250 Toggle Portc.3 Waitms 250 Loop End
To jest mój pierwszy projekt, używam Atmega8A, napisałem banalny program żeby migać diodą: [syntax=c]#define F_CPU 1000000 #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xFF; /* Początek nieskończonej pętli */ while(1) { PORTD = 0b10000000; _delay_ms(100);/* opóźnienie 0.33...
Nie wiem co robię źle, że dioda zamiast mrugać świeci się cały czas. Program napisany jest w C. Program #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 11111111; /* Początek nieskończonej pętli */ while(1) { PORTD = 00000010;...
Koledzy może ktoś mi wytłumczy dlaczego miga tylko 1 dioda //definiujemy stany portu sterującego diodą LED #define LED_ON sbi(DDRD,PD1);sbi(PORTD,PD1&... #define LED_OFF sbi(DDRD,PD1);cbi(PORTD,PD1&... #define LED_ON1 sbi(DDRD,PD3);sbi(PORTD,PD3&... #define LED_OFF1 sbi(DDRD,PD3);cbi(PORTD,PD3&...
Witam, wczoraj dostałem paczkę z mikrokontrolerem i programatorem. Od razu zabrałem się za podłączenie wszystkiego. Po sprawdzeniu czy wszystko działa uruchomiłem eclipse i napisałem następujący kod zgodnie ze wzorem z internetu: http://obrazki.elektroda.pl/1202182900_1... (zasilanie jest z programatora "LC Technology USBASP v2.0")
Mam dziwny problem. Piszę sobie program o takiej treści: $regfile = "m8def.dat" Config Pinb.0 = Output Config Pinb.6 = Output Config Pinb.7 = Output Config Pind.5 = Output Config Pind.6 = Output Config Pind.7 = Output Led1 Alias Pinb.6 Led2 Alias Pinb.7 Led3 Alias Pind.5 Led4 Alias Pind.6 Led5 Alias Pind.7 Led6 Alias Pinb.0 Do Set Led1 Reset...
Witam! Od kilku dni męczę się z pewnym zadaniem, polegającego na sterowaniu diodami. Problem polega na zapaleniu diody na porcie PC1 przez czas times, następnie razem na portach PC1 i PC2 przez czas timed, potem tylko PC2 przez czas times, potem PC2 i PC3 przez timed itd. Napisałem program i niby wszystko dobrze, bo jak chce zapalić pojedyncze diody...
Witam, domyśliłem się, że gotowców nie robicie (w sumie to i dobrze:) ), tak więc zabrałem się sam za programowanie. Chcę napisać prosty program zapalający diodę, podłączoną do bitu 0 portu B, po przyciśnięciu przycisku podłączonego do bitu 0 portu D. Teoretycznie napisałem, ale nie chce to działać. Znalazłem link na forum gdzie problem był opisany,...
Witam ponownie. Ponieważ nie zdążyłem odpowiedzieć na pytanie o schemat i program, a już mój temat znalazł się w koszu pomimo, że zamieściłem go w zakładce dla początkujących: http://www.elektroda.pl/rtvforum/topic26... to proszę o wyrozumiałość i informuję, że schemat wygląda tak: VCC i AVcc - plus zasilacza 5V GND (oba) - minus zasilacza RESET...
Witam. Chcę zaprogramować procesor Atmega 8, tak aby po przyciśnięciu przycisku1 zapaliła się dioda i świeciła do momentu zwarcia przycisku2. (przyciski zwierane do masy) Napisałem taki program, lecz w efekcie dioda cały czas świeci. Nie wiem co jest źle, może ktoś zauważy jakiś błąd: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Config...
Witam serdecznie. Podjąłem pierwszą próbę programowania kontrolera Atmega8 z Eclipse, napisałem prosty program z migającą diodą. Podłączyłem ją do portu PC5. Program wgrał się do kontrolera prawidłowo ale dioda nie mruga. Program zapożyczony z książki M. Kardaśa "Mikrokontrolery AVR, Język C" #include <avr/io.h> #include <util/delay.h> #define...
Proszę bardzo - kursik od podstaw: http://mikrokontrolery.blogspot.com/2011... z gotowymi programami, itp. a jak czegoś nie skapujesz - pytaj na tym forum :-) PS. Ode mnie 20 pkt, bo masz mało, a mogą się przydać na początku drogi.
Nie mam pojęcia, ale jak już napisałem odnosisz mylne wrażenie, co udowodnił poprawnie działający program migania diodą.
Jeżeli masz watchdog ustawiony na stałe a brak w programie jego kasowania to tu może być przyczyna. Pzdr. N.
Witam, W skrócie - mam 2x atmega8a-pu kupione na allegro. Chce na tym uruchomić najprostsza migającą diodę. Drobne utrudnienie, że działam spod linuxa, ale to chyba nie powinno mieć wpływu. Programator mam usbAsp. I teraz cała historia moich zmagań: Podłączyłem sobie wszystko wg. schematów dostępnych w sieci, z uwzgl. pinów mojego procka. W Arduino...
Witam, jak w temacie mam poprawnie podłączona atmege8 do programatora ( przykładowy program migająca dioda działa idealnie). Programy pisze w BASCOMIE zapisuje w hex (przez programator stk200) a wgrywam przez avrstudio stk500. Wszystko jest pięknie ale gdy podłączam lcd 16x2 wyświetlają mi się w tylko czarne kwadraciki na pierwszej linii. Konfiguracja...
witam a więc chciałem napisać swój pierwszy program w życiu :) wygląda on tak: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.6 = Output Config Pind.4 = Input P Alias Pind.4 D Alias Pinb.6 Dim Mruganie As Bit Do If P = 0 Then Waitms 500 D = 1 Waitms 500 D = 0 End If Loop Until P = 1 Do If P = 1 Then D = 0 Wait 2 D = 1 Loop Until P =...
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...
.... problem wynika z tego, że pin powinieneś podciągać do vcc, inaczej cały czas masz stany nieustalone czyli dodaj do inicjalizacji: DDRD &= ~(1<<PD3);//pin jako wejście PORTD |= (1<<PD3);//podciąganie wewnętrzne
Tzn. chciałeś "przypisać" zmiennej x operację PORTB ^= 1<<PB0 ? Jeśli tak to: pomysł sensowny, ale niestety gwałcący zasady języka C ;) Mignięcie diody miało być w funkcji, która będzie kilka razy wywoływana w pętli, czyli chodziło mi o coś takiego:[syntax=c]//Funkcja migająca diodą void blink(void){ // Zapal diodę PORTB |= 1<<PB0; _delay_ms(300);...
Jeśli masz diody podłączone do plusa włączasz je komendą Reset a wyłączasz Set. Set podaje na pin stan wysoki (czyli plus) i dlatego ci to nie działa jak chcesz.
Całkiem możliwe... bo masz delaya w przerwaniu... Spróbuj jeszcze w pętli głównej zrobić tylko miganie diodą bez użycia przerwań... z delay(1000) i 2x delay(500), albo jakimś mniejszym... potestuj
A ja bym sprawdził czy przypadkiem AvrStudio nie jest w trybie symulatora a z drugiej strony czy przypadkiem nie jest tak że program programem a programowanie wykonuje się z zupełnie innego plku hex niż autor się tego spodziewa ?
Bo WGM12 jest w TCCR1B a nie w TCCR1A. W tym momencie Twój licznik pracuje w trybie Normal i liczy do 65536 i raz na taki cykl ustawia flagę od porównania czyli co 2,09 sekundy.
Ok, SPL <> SPH... i podłącz AVcc, skoro uzywasz PORTC. Tak w ogóle to poczytaj notę katalogową (oczywiście nie staraj się zapamiętać wszystkiego, raczej gdzie co jest omówione), bez tego to jak bez mapy na nieznanej drodze...
Kilka warunków może być spełnionych naraz, stąd takie działanie
Niestety nie da sie w Pascalu. Przepraszam , ale śmiem się nie zgodzić. Jest kilka PASCAL-i na AVR. Np tutaj : http://www.e-lab.de/AVRco/index_en.html Może nie jest super udany, nie mniej jest to PASCAL. Dużo lepszy jest PASCAL dla PIC-ów, tej samej firmy. Jedyną zaletą jest to, że do przykładów jest dołączona dokumentacja z gotowymi schematami urządzeń....
Najpierw wklep mój kod. Problem miałeś w braku podciągania PinB2 do VCC, i w tym że najpierw gasiłeś diodę a potem ją zapalałeś w ifie i tak w kółko. Więc jak już to by CI bardzo szybko migała.
Taki jakie ustawiłem programowo - nie muszę tego sprawdzać :) Dlatego chciałem byś sprawdził, czy możesz migać diodą.
Napisz dokładnie jak podłączyłeś diodę świecącą. Migania diody przy kręcącym się wiatraku nie zobaczysz ze względu na wysoką częstotliwość.
Hej, Przedtem sprawdziłem tylko czy działa przetwornik. Dla pełni szczęścia ustaw jeszcze bit ADLAR w ADMUX (strona 205 pedeefa dla ATmega8). W przeciwnym wypadku bedą Ci migać co najwyżej dwie najmłodsze diody portu D. Jeżeli diody masz podłączone do VDD to mozesz zanegować ADCH (PORTD = ~ADCH) aby mieć zgodność świecenia diód z wartością ADCH. Pozdrawiam
Brak osi symetrii, dublujesz wymiary, na przekroju podaj wymiary średnicowe ze znaczkiem "Φ". Bazą jest zawsze otwór bo na nim mocujesz to koło. Rzut główny niczego nie wnosi. Zmień przekrój na pół widok - półprzekrój. https://www.google.pl/search?q=atmega8+M...
Witam, zastanów się co się dzieje w switch (OPCJA) dla PRZEL == 1. Jak będziesz wiedział jak działa switch...case, możesz wykorzystać go do migania diodami bez ciągłego delay między nimi i blokowania całego programu.
Witam, Jakim kwarcem kolega popędza ten układ? Podłącz diodę led do portu (przez rezystor) i migaj nią co 1 sekundę (programowo). Wtedy będziesz miał pewność, że procek popędzasz takim zegarem jak zadeklarowałeś.
...po toggle (albo end if - zależy od konstrukcji) jeszcze warunek na puszczenie przycisku, bo nie nadążysz patrzeć jak migają te diody ;)
Witam. Chciałbym poznać chociaż trochę asemblera.Nie chodzi mi o jakieś zaawansowane programy tylko na początek miganie diodą , operacje na portach itp. Najlepiej na Attiny2313 lub Atmega8. Czy nada się do tego programator stk200? Jaki kompilator( najprostszy i najlepiej po polsku) Do tej pory programowałem trochę w bascomie i więcej w C. Z książek...
Od pierwszego programu do obsługi wyświetlacza daleko. Bascom jest prostszy niż C++ ale ma znacznie mniejsze możliwości. Na początek chyba lepiej pobawić się diodami. Programy typu włącz-wyłącz, miganie diody itp. To pomaga w zrozumieniu działania mikrokontrolera (przynajmniej ja tak zaczynałem).
Cześć chcę zrobić grę na atmega8 lub atmega32. Wyświetlacz z diod led koło siebie ułożonych nie dużo najwięcej 5*5 diod. Chciałbym żebyś podali napisany program do atmegi i jakim programem go zaprogramować? http://www.allegro.pl/item567754772_prog... Taki kupie programator wystarczy on? Na odpowiedzi czekam....
Brak 2 kondensatorów 27PF przy kwarcu dlatego oscylator pracuje niestabilnie. Rezystory trzeba dodać do segmentów A....G a CA1...C3 bezpośrednio do portów inaczej wszystko będzie zmieniać jasność świecenia.
Jeśli chodzi o mikrokontrolery to w zasadzie tylko C, ostatnio też C++ jeśli nie chcesz trafić w ślepą uliczkę jaką jest np. BASCOM (sam używam i do zastosowań "domowych" jest ok, ale ma wrażenie że jego popularność spadła na rzecz arduino. Co do wyboru procesora nie ma znaczenia czy AVR PIC czy STM. Każda rodzina ma swoje wady i zalety, na początek...
A sprawdziłeś czy układ faktycznie ma te zaprogramowane 8MHz? Jakieś proste miganie diodą etc?
Dzięki dzięki dzięki dzięki. Ściągnięcie starszego avrdude i wrzucanie korzystając z wiersza poleceń działa! Jednak extreme Burner nie działa dalej. No ale nie ważne, ważne że wreszcie możemy wrzucać jakieś programy i działa to wszystko. Eh, jak cieszy pierwsza migająca dioda po kilku dniach prób :D Teraz już chyba będzie łatwiej. PS. Ja i LOSE226 to...
jeep. ducker masz przechlapane za teorie z dioda. wstyd
Zrobie tak TWPS = 1 TWBR = 2 Zobacze wtedy czy zadziała. Rozumiem, że to można jeden raz w funkcji Main wklepać, nie trzeba za każdym wywołaniem funkcji twistart() tego robić... Nie ma takiego rejestru TWPS chyba chodziło o TWSR Ale i tak nie działa. Dioda nie miga
Zwykle wygodniej projektuje się płytkę, gdy diody mają wspólny biegun, a rezystory są pomiędzy wyjściami uC i diodami.
Faktyczny. Prawdę mówiąc tak tego nie pomyślałem. Faktyczne X%/0% wypełnienia da miganie diody o zadanej intensywności światła. Dzięki i już wszystko jasne! Pozdrawiam B.
I nie ma diodek ;)
Witaj! Zmień: #define L 0xDC; #define H 0x0B; #define pres 0x03; Na: #define L 0x84 #define H 0x1E //7812 #define pres 0x05 //preskaler 1024*7812/8M=~1 - dioda miga co 1s Nie pisz średników w define Pozdrawiam!
Zgadza się, ale to stwierdzenie niczego mi nie wyjasniło
gdzie schemat, gdzie program? czy programator widzi uC?
migająca dioda alarmu migająca dioda prądu migająca dioda ne555
vestel gaśnie podświetlenie schemat przedwzmacniacz audio compaq dźwięk
discovery sport regulator napięcia alternatora schemat
Pioneer 438 DA (DEH-6026ZH Honda) – instrukcja obsługi radia samochodowego PDF Nawlekanie nici dolnej w maszynie Łucznik 438