Błąd jest tutaj: [syntax=c]#define LED_0_OFF PORTA &= (1<<0)[/syntax] nie gasi diody bo zabrakło tyldy :) PS. Dodałem Ci 50 punktów, bo masz zero, a mogą się przydać :)
Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
po kolei... po pierwsze jak już ktoś też wspominał wyrzuć te rezystory 47R na liniach D0-D4 oraz RS i EN po drugie odłącz to podświetlanie od tego pinu WYS (zrób przez tranzystor - też ktoś już podpowiedział tranzystor zwykły npn) po trzecie ja na twoim miejcu tak bym konfigurował porty: Config PORTA = &B01111000 zamiast Ddra = &B01111000 albo jeszcze...
Witam Próbuje od jakiegoś czasu zaadoptować bibliotekę FatFSby ElmChan R0.15. Załączam oryginalną lib R0.15(zip) poniżej. Użyłem Atmegi 1284P Dip40 . Czytnik kart skonstruowałem sam (pod arduino libs działa). Jakie zmiany w kodzie zrobiłem: W oryginale Elm użył konfiguracji przez USART SPI – ja skonfigurowałem pod SPI W pliku ffconf.h: * dodałem dyrektywę...
No to robię na urodziny prezent dla kogoś z LEDów na ATmega324A-PU. No i będę programował pierwszy mikrokontroler, który nie jest Arduino. Schemat połączenia LEDów wygląda mniej więcej tak: https://obrazki.elektroda.pl/1592528100_... Główną zmianą jest to, że rezystory oznaczone jako 250 mają 200R. Reszta układu: https://obrazki.elektroda.pl/5253513800_...
Nie czaję. Drabinkę masz na PortA czy na PortD?
Zamiast: [syntax=c] If ((!(PIND &0x03)) | (!(PIND & 0x06)) | ((!(PIND & 0x05))) // wygaszenie diod przy wciśnieciu dwóch SW { PORTA = 0x00;} } [/syntax] [syntax=c] daj: If ((!(PIND && 0x03)) || (!(PIND && 0x06)) || ((!(PIND && 0x05))) // wygaszenie diod przy wciśnieciu dwóch SW { PORTA = 0x00;} } [/syntax]
zrob tak #include <avr/io.h> int main(void) { DDRA=0xFF; //portaA - wyjscie PORTA = 0xF; while(1) return(0); } po prostu odlutuj przycisk, i ustaw na dzień dobry 00001111 zobaczymy co sie stanie
Mam krótki temat na początek. Atmega 16. Na porcie A jedna z diód się świeci (na PA5). Na pinie PB0 portu B podłączyłem przełącznik. Chcę nim przełączać diodę. Wiem, że jest mnóstwo programików różnych, niemniej jednak dla zrozumienia czegoś, chciałbym wiedzieć dlaczego nie działa to co poniżej. /* * main.c * * Created on: 13 sty 2019 * Author: komp...
W tym momencie jest tylko cos takiego testowego (na różne sposoby probowalem zmieniac stany portów) $regfile = "m128def.dat" $crystal = 14745600 Config Portf = Output Config Porta = Output Config Portb = Output Config Portc = Output Porta = 255 Portb = 255 Portf = 255 Portc = 125 Do Toggle Portf.2 Wait 1 Porta.0 = 1 Porta.1 = 1 Porta.2 = 1 Porta.3 =...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Witam, Po długiej przerwie udało mi się wrócić do mikrokontrolerów :-D Teraz bawię się atmega 2560. Na początku miganie diodą i przyciski poszły bez problemu, problem pojawił się przy konfiguracji sprzętowej PWM w trybie fast. [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void) { DDRA |=...
Witam Serdecznie Na początek kod: [syntax=c]#define F_CPU 4000000UL #include <avr/io.h> #include <avr/iom128.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t i=0; int main(void) { DDRA = 0xFF; ASSR &= ~(1<<AS0); TCCR0 |= (1<<CS01) | (1<<CS02); TIMSK |= (1<<TOIE0); TCNT0 = 131;...
Nie działa mi komenda debounce. Pracuje na ATmega 16 Mam podłączone przyciski do uC pod piny A0, A1, A2, A3, A4, A5. Przycisk natomiast jest podłączony pod mase układu. W programie podciągłem rezystory takim sposobem: Set PORTA.0 ............. a program wygląda tak do ...... instrukcje odczytu czasu z PCF8583 instrukcje odczytu z temp. z DS1820 ..........
BlueDraco tutaj: [syntax=c]if(f>servos[0]) pc |= (1<<0); if(f>servos[1]) pc |= (1<<1); if(f>servos[2]) pc |= (1<<2); if(f>servos[3]) pc |= (1<<3); if(f>servos[4]) pc |= (1<<4); if(f>servos[5]) pc |= (1<<5); if(f>servos[6]) pc |= (1<<6); if(f>servos[7]) pc |= (1<<7); pcc = ~(pc);...
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania impulsów zewnętrznych należy użyć nóżki T1, a nie T0,...
Witam Kolegów. Mam mały problem. W zasadzie mój problem polega na tym, że działa coś co moim zdaniem nie powinno działać. Napisałem prosty kod na obsługę timera w ATmega 32. Prpgramik ma generować na 1-szym pinie PORTA sygnał o określonej częstotliwośći. Kod jest następujący: #include <avr/io.h> main() { DDRA=255; //ustawienie PORTA...
A więc tak jeśli chodzi o rezystory pull-up na trzech liniach to pisze że nie powinno ich być a na fotce powyżej jednak je mają z tego co widzę to 10K. Kondensatorów w obwodzie kwarcu nie mam bo ich nie wlutowałem i to jest chyba ok. W moim układzie posiadam rezystory pull-up na trzech liniach po 4,7K bo tak została zaprojektowana płytka testowa Atmega...
Chce zrobić aby atmega pracowała tak samo jak układ ULN2803 tylko odwrotnie (wszystkie 8Bity) Zrobiłem tak: $regfile = "m16def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Postb.7 Config Lcd = 20 * 2 Ddrc = 00000000 Config Porta = Output Portc = 1 Deflcdchar...
Ustawiłem w Slave aby wstawił do SPDR wartość 0x80. I pierwsza próba odebrania zwraca wynik 0x80. Natomiast następnej już nie. [syntax=c]ISR(SPI_STC_vect) { uint8_t bajt = SPDR; PORTA = bajt; SPDR = 0x80; // Wartość do następnego wysłania }[/syntax]
Witam. Postanowiłem spróbować nauczyć się kilku podstaw z mikrokontrolerami i programować je. Kupiłem zestaw EVBavr05 Propoxu z atmega16. Do zestawu dołączone zostały również przykładowe programy napisane w c. Próbuje w pisać w BASCOM, jednakże po poprawnym skompilowaniu programu, przeprowadzeniu symulacji i wgraniu na procesor nic się nie dzieje. Atmega...
Witam witam załóżmy teoretycznie że na procesory: Atmega 8 , STM32F100x, STM32F102x, STM32F103x, LPC214x gram identyczny kod który ma za zadanie tylko zmieniać stan portu A while(1) //pętla nieskończona { PORTA = 0xFF; //ustaw stan wysoki PORTA = 0; // ustaw stan niski } Jaka byłaby częstotliwość zmian PORTU A? przy założeniu że wyżej...
Witam, napisałem sobie pewien kod bo chciałem spróbować sterować dwoma wyświetlaczami LED przy pomocy multipleksowania. Niby działa ale nie do końca tak jak powinno, chodzi o to, że na załączonym obrazku w miejscu cyfry 2 widać, że wyświetla się ona jasno, tak jak powinna ale wyświetla się razem z cyfrą 6 (jest ona ciemniejsza), która powinna być tylko...
Zmieniłem to tak: Dodano po 6 I Atmega działa na 16MHZ
Witam. Robię zegar na lampach nixie LC513. Do tej pory nie miałem większych problemów z "duchami" ale w tym zegarze są one tak koszmarne że to po prostu nie przejdzie. Jak programowo wyeliminować lub zmniejszyć do minimum to zjawisko? Tu moja procedura obsługi wyświetlaczy: [syntax=vbnet] Coms: Load Timer0 , 70 Incr Ktorywysw : If Ktorywysw = 6 Then...
Na porcie C w Mega16/Mega32 od pinu PC2 do PC5 jest interfejs JTAG który domyślnie w nowym procesorze jest włączony i nie pozwala machać pinami. Czy sprawdzałeś ten program na pinach PC0-PC1 lub PC6-PC7? Z drugiej strony to chyba lepiej do testów napisać coś takiego' Cały port powinien mrugać w kółko ;) [syntax=vbnet]Dim Test As Byte Config PORTA =...
Witam, mam problem z okiełznaniem programowego PWM. Pacjent to Atmega 16 taktowana zewnętrznym kwarcem 8MHz. Niby wszystko tak jak powinno być, a ruszyć nie chce. Będę wdzięczny za rzucenie świeżym okiem na program, bo kończą mi się pomysły co jest nie tak. #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile...
Musze napisać program (opisać go komentarzami, napisać schemat blokowy a także pokazać co robi ten program) Prosze o pomoc! Z góry dziekuję! Treść projektu: Napisać program zliczający zapalone bity na portach A i B i wyprowadzający liczbę zapalonych bitów zakodowaną w formacie BCD na port C kolega z grupy wysłał mi ten program co robiliśmy na zajęciach...
Problem jest taki że na symulatorze kod działa tak jak powinien, a na uC nie działa "menu" programu(funkcja Program) tylko od razu przechodzi do wykonywania pierwszej funkcji(funkcja Count). W ogóle atmega jakby nie reagowała na żadne przyciski. Zamieszczam kod programu: [syntax=asm].INCLUDE "m32def.inc" .EQUSYS_FREQ = 1 ldiR22, 0xFF ; set PORTA as...
Witam. Dziękuję za radę, dzięki niej ruszyłem z projektem nieba. Na ta chwile wygląda to tak jak na filmiku. Tak, oczywiście z tym kwarcem to pomyłka, Atmega 32 taktowana jest z częstotliwością 16MHz. Umieszczam także kod źródłowy jaki wyskrobałem. wszelkie uwagi mile widziane. https://filmy.elektroda.pl/83_1416058356... Dodano po 5 ...i jeszcze jedna...
W celu sprawdzenia wyjść uC napisałem taki oto program który na symulatorze działa poprawnie zaś na nóżkach uC brak napięcia... dlaczego? $regfile = "m16def.dat" $crystal = 1000000 Config Porta = Output Config Portb = Output Config Portc = Output Config Portd = Output Do Wait 1 Toggle Porta.0 toggle Porta.1 toggle Porta.2 toggle Porta.3 toggle...
Zwróc uwagęna to, czas trwania stanu wysokiego na lini zegara SCK generowanego przez zmianę stanu lini PA1 jest bardzo krótki w porównaniu do trwania czasu niskiego: for (char a=0; a<8; a++) { PORTA &= ~0x80; // tu ustawianie w stan niski PORTA &= ~0x80; if((PINA & 0x20) == 0x20) Byte |= (0x80 >>...
Mam problem z atmega w prostym robocie, po odpowiedniej konfiguracji pinow jesli ustawiam pin 2 to nie podaje na niego calych 5V a pozatym podaje np na pin obok 2V albo cos podobnego. atmega sprawna (sprawdzanie na kilku). Atmega steruje przez mostek H silnikami.czujnik odczytuje prawa lewa (mostek i czujniki sprawne). czy wiecie co moze powodowac takie...
Witam, Mam problem, niby banał, a od kilku godzin nie mogę sobie poradzić Program odchudziłem do kilku linii kodu: #include <avr/io.h> int main(void) { DDRA=0x00;//wejście PORTA=0xff;//z podciąganiem DDRC=0xff; //wyjście while(1) { unsigned char a; a=PORTA; PORTC=a; } } i nie działa Na PORTC zawsze podaje to,...
Witam, Napisałem program, który wprowadza uC w stan uśpienia. Wszystko działa poprawnie, ale do tej operacji używam dwóch przycisków. Jeden służy mi do usypiania (PA1), a drugi, jako przerwanie do wybudzania uC (PD2-INT0). W jaki sposób mogę zrobić to na jednym przycisku podpiętym pod PD2? Poniżej kod. [syntax=c]#define F_CPU 8000000UL /*czestotliwosc...
Witam, czy istnieje możliwość przechowania nazw portów i pinów w tablicy lub podobnej strukturze (coś na kształt tablicy definicji), tak żeby można je wywoływać kolejno w pętli, posługując się tylko indeksami tej tablicy? Zamiast tworzyć coś takiego: -------------------------- #define PORT_OUT1 PORTA #define OUT1 0 #define PORT_OUT2 PORTA #define OUT2...
Witam forumowiczów :D! Tworze projekt na zaliczenie - prostą perkusje elektroniczną, która posiada 12 przycisków, czytnik kart SD i wyjście PWM podpięte przez wzmacniacze do gniazda jack. Wszystko do momentu odtwarzania dźwięku działa poprawnie - wartości z pliku czyta prawidłowo (przetestowane na diodzie). Problem pojawia się gdy zaczynam odtwarzać...
OK, wywaliłem to powielanie i zrobiłem po prostu if i potem else if. Co masz na myśli brak nop ? asm("nop"); ? [syntax=c]PORTA = 0b01111111; if((PINA & 0x08)==0) PORTC = wyswietlacz(1); else if((PINA & 0x04)==0) PORTC = wyswietlacz(2); else if((PINA & 0x02)==0) PORTC = wyswietlacz(3); PORTA = 0b10111111; asm("nop"); if((PINA & 0x08)==0) PORTC = wyswietlacz(4);[/syntax]...
Witam Serdecznie PanowieTemat mam pewiennieaktualny problem a mianowicie zrobiłem ten sterownik http://mirley.firlej.org/prosty_sterowni... wszystko ładnie się zaprogramowało fuse bity ustawione po załączeniu działają wszystkie funkcje lecz niestety nie pokazuje mi temperatury niby trzeba trzymać przycisk s1 na pierwszy cujnik ds18b20 i go wpisać...
Witam Próbuje zrobić program na AtMege16 Program ma działać w następujący sposób: Przyciskam 1 guzik z klawiatury (klawiaturka jest 4x4, ale wykorzystywane tylko 3x4) i ma zapalić się dioda 0 (podłączona do portu A pin 0) i zgasnąć z opóźnieniem powiedzmy 30sekund Przyciskam 2 guzik i zapala się dioda 1 (PA 1) z opóźnieniem 30 sekund i gaśnie po takim...
Witam, od wczoraj zmagam się z problemem odbioru kodu RC5 w urządzeniu, w którym mam multipleks dużej ilości wyświetlaczy 7-segmentowych LED. Przerwania na multipleks przychodzą co około 4ms. Multipleksowanych cyfr jest łącznie 48, ale pogrupowane są one, tak jakby były tylko 4 cyfry. W każdym przerwaniu kody segmentów wysyłane są szeregowo na 3 rejestry...
Witam, już na wstępnie napisze, że jestem początkująca w tych tematach. Chcę napisać obsługę wyświetlacza AVD-7180272C256 - A002-R (nie wiem czy dobrze spisałam symbol, bo nalepka na wyświetlaczu jest trochę zdarta) na atmedze128A. Skorzystałam z funkcji dostępnych w nocie katalogowej wyświetlacza. Udaje mi się zaświecić wszystkie piksele w wybranym...
Niestety żadnego potencjometru nie mam pod ręką. A może będzie prościej skorzystać z programowych PWM? Mam taki kod: http://obrazki.elektroda.pl/1002534200_1... Co jest źle?
Jeśli za przykład weżmiemny port A to po skonfigurowaniu odpowiednich końcówek jako wyjścia zmianę stanu końcówki osiagamy wpisujac 1 lub zero do odpowiedniego bitu rejestru. Nie mam PDF ATmega 16 ale dla ATmega 32 na stronie 327 (rozdział Register Summary) jest pokazane, że PORTA ma adres $3B. Jest to Hex adres do którego można zapisać dowolną liczbę...
Witam Mój problem polega na równoczesnym wykorzystywaniu przerwań int7-5 wraz z przerwaniami int3-0. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> void main(void) { DDRA = 0b00111111; DDRD &= 0b11110000; DDRE &= 0b00011111; EICRA = 0b10101010; EICRB = 0b10101000; EIMSK = 0b11101111; sei(); while(1) { } } ISR(INT7_vect)...
Witam, Po przesiadce z Atmegi8 na wersję 32 postanowiłem ponownie złożyć układ z wyświetlaczem i dwoma termometrami, niestety pomimo użycia tego samego kodu już na początku mam problemy. Po sukcesywnym załadowaniu programu Atmega startuje i prawdopodobnie wywraca się na funkcji lcd_init i nie chce ruszyć dalej. Wspomagalem sie dioda sygnalizacyjna i...
Witam, przez kilka ostatnich dni próbuję rozgryźć cały ten port COM, udało mi się "dogadać" z Atmegą16, jednak tylko przez terminal (dokładnie przez SimpleTerm, HyperTerminal oraz przez terminal BASCOM-AVR). Wszystko fajnie działa, jednak gdy przychodzi mi napisać program w czymkolwiek, czy to WinAPI+C, WinAPI+C++, C#, Delphi, to za nic w świecie nie...
Witam Mam od pewnego czasu problem z ktorym sie borykam, a mianowicie nie umiem uruchomic wyswietlacza graficznego 128x128 ze sterownikiem T6963C, nie wiem dlaczego, to jest moj pierwszy projekt na ATmedze 16, ten sam program napisany pod ATmega 8 dziala bez problemu... Program napisany jest w BASCOM a sterowanie wyswietlacza mam ustawione tak: Config...
nie chciałem zakładać nowego tematu ponieważ ten też jest mój a tytuł także nawiązuje do mojego problemu. Otóż próbowałem odpalić driver led $regfile = "m32def.dat" $crystal = 16000000 Config Spi = Hard , Data Order = Msb , Master = Yes Config Porta = Output Dim X As Byte Do Incr X Toggle Porta.6 Spiout X , 1 Set Porta.7 Waitus 20 Reset Porta.7...
Cześć, Tez właśnie zaczynam zabawę z uC, i właśnie stoję przed wyborem pierwszego procka (AVR). Waham się między: Attiny 12, 13, 15 Attiny 26 Attiny 2313 Atmega 8 (którą posiadam) Atmega 16 i więcej Mam dosyć ambitne plany, potrzebuję min. 16 we/wy I/O, Attiny26 wydaje się być fajny ze względu na PortA i PortB od 0 do 7, lubie porządek a nie jak w np....
atmega porta klawiatura atmega porta input blaupunkt porta
amperomierz miernik przestały działać wycieraczki wybrzuszenie laptop
pralka bosch wan2026 pralka bosch wan2026
Wszystkie diody świecą w bojlerze Ariston Pro1 Eco 120V Audi 100 C3 – stały plus na silniczku krokowym N71, KE-Motronic, przekaźnik J17, objawy i diagnostyka