1. Po pierwsze nie "na każdym segmencie", a "na każdej pozycji". Wyżwietlacz jednej cyfry składa się z siedmiu segmentów, dlatego nazywa się "siedmiosegmentowym". Wyświetla Ci to samo, bo tak kazałeś w programie: cyfra[3] = sek % 10; //tysiace cyfra[2] = sek % 10; //setki cyfra[1] = sek % 10; //dziesiatki cyfra[0] = sek % 10; //jednosci - na czterech...
niestety zapis na flashu chyba czasowo się nie wyrabia z odczytem i mam krzaczki. Puki co przerobie tablice na dwu wymiarową . Tablice wielowymiarowe są problematyczne, bo: int Edit - usunąłem błędne informacje o układzie tablic w pamięci. Aha coś sobie przypomniałem, co przeszkadza mi w zrobieniu dwu wymiarowej tablicy for(i=0;i<5;i++){...
Litości :) Litości :) Pomijąjąc powyższe fakty, program powinień wyglądać tak: [syntax=c]volatile int program; przerwanie_przycisku() { program++; } main() { konfiguracja(); while(1) { if(program == 0) migaj_w_lewo(); else if (program == 1) migaj_w_prawo(); else if (program == 2) migaj_z_gory_na_dol(); } return 0; }[/syntax] lub jak kolega wyżej napisał...
Tylko w kodzie, który "scop" udostępnił linijki wł. i wył. diodę są zakomentowane - może warto byłoby to zmienić (plik "simple_server.c"): if (cmd==1) { //PORTD|= (1<<PD7);// transistor on //IOCLR |= (1<<26); //LED1ON(); i=1; } if (cmd==0) { //PORTD &= ~(1<<PD7);//...
Tak, w C wartość różna od 0 jest prawdą, stąd też twoja dziwaczna konstrukcja: if( (PORTD&0x20)>>5 ) powinna wyglądać po prostu tak: if(PORTD&0x20) Swoją drogą stosowanie makra _BV() jest IMHO pomysłem dobrym. Ma to swoje wady, ale też zalety. Proponuję przeanalizować co się stanie jeśli omyłkowo zamiast x<<5 wpiszemy x<5. Generalnie...
Generalnie w takich przypadkach nota układu twoim przyjacielem. Poczytaj to co napisałem w komentarzach. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> int main(void) { uint8_t i = 0; DDRD = 0xff; //TCCR2A |= (1<<WGM21)|(1<<WGM22); // źle ten tryb jest zarezerwowany TCCR2A |= (1<<WGM21) // CTC //TCCR2A |= (1<<CS20)|(1<<CS21)|(1<&l...
Zobacz to i wyciągnij wnioski [syntax=vbnet]$regfile = "m88pdef.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '$sim Cursor Off Cls Config Portd.0 = Output Config Timer1 = Timer , Prescale = 8 , Clear Timer = 1 , Compare A = Disconnect , Compare B = Disconnect Compare1a = 62500 On Compare1a Beep Enable Compare1a Enable Interrupts...
Kod wygląda tak: void read_data(){ sread; register unsigned char i2; for(i2=0;i2<=128;i2++){ PORTC=i2; if(bit_is_set(PORTC, 6)){PORTB |=_BV(5);}else{PORTB &=~_BV(5);} PORTD = y; } } Nie widze żeby kompilator miał tu jakieś zastrzeżenia, nie znam asm może ktoś...
Witam. Zakupiłem uC ATMEGA88 (Dokładnie pisze na nim: ATMEGA88-20PU). Napisałem najprostszy z możliwych programów: #include <avr/io.h> int main(void) { int i = 0; DDRD = 0xFC; //1111 1100 PORTD = 0x00; while(1) { if(!(PIND & 0x01)) PORTD = 0x08; if((PIND & 0x01)) PORTD = 0x04; }...
Fragment schematu układu: http://obrazki.elektroda.pl/2588316800_1... Przykładowy kod (funkcje TWI ze strony http://radzio.dxp.pl/twi/): #define F_CPU 8000000UL #define SCL_CLOCK 100000UL #include <avr/io.h> #include "TWI.h" int main() { DDRC = 0x09; PORTC = 0x09; DDRD = 0x03; PORTD = 0x00; TWSR = 0; TWBR...
Na mojej płytce wszystkie programy działają. Odczytaj programatorem plik z procesora i porównaj z tym wygenerowanym przez kompilator to bedziesz wiedział czy programator źle wpisuje program. Spróbuj ten program tylko pokombinuj z watrością [ , Wait = 2500] tzn wprowadzaj wartości od 100 do 5000. Musi zadziałać. Dla kwarcu 8MHz i ATMega88 [syntax=basic4gl]$regfile...
Dzięki za plik, ale nic to nie dało. Użyłem 16Mhz kwarc, D- mam na PortD.0, D+ pod PortD.1 i 2. Zmieniałem linię podłączeń usb w plikach USB config, i też nic to nie dało... gdzie powinny być podłączone te linie dokładnie? Mam ATmega88, nie 8,kompiluję i programuję go pod AVRstudio4. Dodano po 1 A jednak działa! Wykrywa prawidłowo, no to teraz będę...
Zmieniłem w Alias, niestety nie mogę znaleźć składni funkcji debounce z dwoma warunkami, więc może mógłby ktoś umieścić jak to powinno wyglądać. Po zmianie dalej występuje błąd: Error 61: Label not found [PINC.1 ]. Co jeszcze zmienić, aby poprawić error? Poprawiony kod: <code> $regfile = "m8def.dat" $crystal = 12000000 Config Portc.0 = Input Config...
Witam! Czy ktoś mógłby mi pomóc przerobić kod tak aby był obsługiwany przez Atmegę 88? (poniższy jest obsługiwany przez atmegę 16 i dotychy zlicznia impulsów przez zbocze) [syntax=c] void Init_INT() // Inicjalizacja przerwania INT0 { DDRD = 1<<PD2; PORTD = 1<<PD2; GICR = 1<<INT0; MCUCR = 1<<ISC01; void Init_Timer() { TCCR1B |=...
Witam, od kilku dni próbuje zrobić regulator trzech diod led PWM na ATMEGA88 (programator AVRASP). Timer1 (wyjścia PB1, PB2) działa bez zarzutu, ale już Timer2 (PB3) nie daje znaku życia. Próbowałem już wszystkich kombinacji z ustawieniami, rejestrami, bitami, trybami, podłączeniem diod, zmianą procesora (na ten sam typ) odłączaniem ukladu od programatora...
fakt temperatura(1) to tablica, sam pomiar temp nie jest mojego autorstwa ,daje cały program: [syntax=basic4gl] $regfile = "m88def.dat" $crystal = 8000000 Config Portd.0 = Input Config Portd.1 = Input Config Portc.1 = Input Config Portd.2 = Output Config Portd.3 = Output Config Portd.4 = Output Config Portb.6 = Output Config Portb.7 = Output Config...
Witam! Zająłem się zabawą z Atmegą 88 i mam problem z uzyskaniem katalogowego poboru prądu w głębokim uśpieniu. Atmega podłączona minimalnie, tylko 2 kondensatory 100n przy zasilaniu i 2 ledy które pomagają upewnić się że Atmega śpi. Przy zasilaniu 1,8V udało mi się zejść do 8uA. ADC, komparator, watchdog i brown out wyłączone. Taktowanie wewnętrznym...
Poprawiłem kod żeby był czytelniejszy i nieco go skomentowałem: [syntax=c] /* układ ATmega88pa-pu 8MHz */ #define F_CPU 8000000 #define BAUD 9600 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdint.h> #include <stddef.h> #include <avr/interrupt.h> #include <util/setbaud.h> volatile...
Witam, Wydaje mi się iż zapisuje wszystko poprawnie z datasheet jednak coś jest niepoprawnie... Wiem sprawa banalna ale za pomoc bede wdzieczny. [syntax=c] #include <avr/io.h> // definicja IO #include <avr/interrupt.h> // dolaczenie naglówkowego potrzebnego do obsl. przerwan #include <util/delay.h> // proste opuznienia // dioda LED...
Witam. Od paru godzin męczę się z niedziałającym USARTem na atmedze32. Na atmedze88 wszystko śmiga jak ma więc przejściówka USB<->RS232 jest ok. Brak zimnych lutów na płytce. Kwarc zewnętrzny (ustawiony jako EXTHIFXTALRES_258CK_4MS - przy czym nie wiem czy tak ma być dla kwarcu 16MHz). Kod zamieszczam poniżej: [syntax=c] /* * softPWM.c * * Created:...
(at)Markosik20 Dziękuję za zainteresowanie! :-D Nie zrozumieliśmy się. Nie chcę transmitować znaków w czasie rzeczywistym. Druga sprawa - w RS485 masz wiele nadajników, jeden master reszta slave - nie można sobie tak śmiecić na linii (po znaku), to nie buforowany RS232! Inna sprawa, że docelowo przesył będzie w trybie ASCII (później rozszerzę soft o...
[syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */ DDRC = 0xFF; DDRB = 0xFF; DDRA = 0xF0; PORTB=0x00; PORTC=0x00; PORTD=0x00; PORTA=0x00; /* Początek nieskończonej pętli */ while(1) { PORTB=0x00; PORTC=0x00;...
Witam, Mam dziwny problem w mikrokontrolerem. Z nieznanych mi powodów restartuje mi się on gdy ustawiam źródło odniesienia dla przetwornika ADC. Co ciekawsze, dokona kilku restartów i za którymś razem uruchamia się poprawnie, a co lepsze przetwornik działa dobrze. Kod w tej chwili wygląda tak: http://obrazki.elektroda.pl/5684753500_1...
Cześć, Od paru dni usiłuję wyświetlić tekst na wyświetlaczu LCD 2x16. Po przeczytaniu paru tematów na forum zdecydowałem się na użycie [url=http://radzio.dxp.pl/hd44780/hd4478... . W pliku nagłówkowym biblioteki pozmieniałem definicje podłączenia pinów na te zgodne z moim schematem (RS-> PD0, RW -> PD1, E-> PD2,...
Witam. "Przerabiając" książkę p. Tomasza Francuza "Język C dla mikrokontrolerów AVR" natknąłem się na problem obsługi klawiatury matrycowej w przerwaniach. Klawiatura ma wykorzystywać kolejne ustawianie stanu niskiego na pinach na potrzeby multipleksowania. Niestety wciskanie przycisków klawiatury nie powoduje żadnej reakcji. Co ciekawe (dla mnie) po...
Witam. Od jakiegoś czasu zajmuję się mikrokontrolerami i posiadam już pewne doświadczenie w tym kierunku. Ostatnio miałem jednak sporą przerwę... aż do teraz - trafił mi się termometr do zmontowania. Zbudowałem więc prosty układ: Atmega88+DS1820 jak na foto poniżej: http://obrazki.elektroda.net/17_12608087... (Czarne przewody to plus i minus...
https://obrazki.elektroda.pl/1217361000_... Dzień dobry, Długo mnie tu nie było, ale wreszcie trafił się drobiażdżek, który jest elektrodowalny... Jak dobrze wiemy , jednym z największych problemów XXI wieku jest właśnie ten, że dla oszczędzenia paru marnych juanów producenci komputerów postanowili pozbawić je portu równoległego ,...
Witam. 1 - Stosuj aliasy. Np: drzwi alias portd.0 Później w kodzie po prostu drzwi = 1 lub drzwi = 0. bardzo poprawia czytelność kodu. 2 - Odczyt z przetwornika ADC powinien być do zmiennej WORD (przetwornik jest 10 bit). 3 - w pętli głównej masz instrukcje Wait. Powstaje problem ze sprawdzaniem stanu wejść, pętla może się wykonywać bardzo długo, w...
Witam. Mam problem z podstawowa konfiguracja portów w Atmega8 (oraz Atmega88). Najpierw myślałem ze uC jest uszkodzony. Zamieniłem na Atmege88. Nadal tak samo się zachowuje. Jak np na mam odczytać PINB5 i w zależności od jego stanu zmienić któryś bit PORTB na przeciwny to nie działa nic, ciągle widzi ze PINB5 ==1. Jak PINB5 ma sterować PORTD działa...
Witam!Jak w temacie mam problem z zaprogramowaniem atmegi88 Pa-Pu. Mam programator usbasp. > "make.exe" program avrdude -p atmega88 -P usb -c usbasp -U flash:w:Led.hex avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: error: programm enable: target doesn't answer. 1 avrdude:...
Procek usypia i od razu się budzi, a nie powinien... coś nie widzę błędu. Inicjalizacja: [syntax=c]//Konfiguracja przerwania Int0 - POWER_OK (tryb praca -> usypianie) cbi(DDRD, 2); //POWER_OK jako wejście cbi(PORTD,2); //Pullup off EICRA |= (1 << ISC00) | (1 << ISC01); //Aktywacja Int0 zboczem rosnącym EIMSK |= (1 << INT0); //Włączenie...
Witam, najpierw program: .include "m88def.inc" ; procek ustawiam na prace z wewnętrznego oscylatora 8MHz ; tryb sleep ustawiam jako POWER DOWN ; PD3 (INT1) jest przyciskiem (wejscie) ; PB1 (OC1A) to wyjscie sterujace reglem ; PB5 to wyjscie sterujące MOSFETami zalaczajacymi zasilanie regla ; PD5 (OC0B) to wyjscie sterujace LEDem ; ADC6 - pomiar pradu...
Witam. Schemat całego układu: http://obrazki.elektroda.net/75_12533785... Przed położeniem uC do snu ustawiam stany wysokie na bazach tranzystorów (zmierzyłem prąd samych tranzystorów, poniżej 0.00uA bo miernik nie chwyta). Ustawiam wszystkie pozostałe piny w stan wysoki oprócz: pinów przycisków S1-S4 które mają być masą dla pinu przerwania...
Witam. Mam problem z wyświetlaczem 2x8 na Atmedze88. PD0 jest podłączony do RS, PD1 jest podłączony do E, PD2 procesora jest podłączony do DB4, PD3 jest podłączony do DB5, PD4 jest podłączony do DB6, PD5 jest podłączony do DB7. Na ekranie pojawiają się tylko czarne pola. Przetestowałem różne programatory oraz kable. Wgrywa wszystko na układ żadnych...
Czekam 100ms po instrukcji print dla 115K nic to nie pomoglo zmniejszylem predkosc do 9600 nadal nic ;/ kod nadajnika $regfile = "m32def.dat" $crystal = 14745600 $baud = 9600 Config Serialin = Buffered , Size = 10 , Bytematch = 13 '##### Definicja wyswietlacza ##################### Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6...
Witam. Zbudowałem naręczny zegarek binarny, próbowałem napisać program, ale coś jest nie tak. Godzina wyświetlana jest na 4 diodach, minuty na 6. Komunikacja z DS1337 portami C4 i C5. Pod INT0 (D2) podpięty switch bez rezystora. Prosiłbym o sprawdzenie i pomoc w rozwiązaniu problemów. [syntax=basic4gl] $regfile = "m88pdef.dat" $crystal = 1000000 Config...
Witam Mam dwa układy: nadajnik (ATMega88, MC145026), odbiornik (ATMega16L, MC145027). Narazie połączyłem MC145026 z MC145027 kablem. Piny przerwań INT0 i INT1 w ATMega16L mam już zajęte. Chcę wykorzystać przerwanie INT2. Napisałem programy i niestety coś jest nie tak. Odbiornik nie wykrywa przerwania. W nadajniku linie danych mam podłączone do pinów...
Witam! Mam problem z czujnikiem do mierzenia odległości(BPU-1640IOAH12). Mianowicie nie potrafię spowodować jego uruchomienia. Sygnały które wysyła funkcja uruchom_sonar nie powodują żadnych efektów. Czy mógłby ktoś wytłumaczyć co jest nie tak w programie? Czujnik jest podczepiony pod nożkę PC3. [syntax=c]#include <avr/io.h> #include <math.h>...
Coś tam w fpc piszę, ale to raczej zabawa niż programowanie. Chodzi mi głównie o przekształcenie danych z DS1337 tak aby można było wyświetlić je na diodach. Mam do dyspozycji dane Dec i BCD tylko jak je zapisać binarnie? Nie wiem jak zrobić to bez ifów. Np. mam odczytaną godzinę 9 czyli muszę dać na D6 i B6 logiczne zero. Jak to wykonać? wymyśliłem...
Witajcie moi drodzy. Udało mi się obsłużyć (częściowo) klawiaturę matrycowa. Proszę o sprawdzenie kodu (kod bazuje na przykładzie dondu bo przez rs232 wysyłam to co kliknięto) http://obrazki.elektroda.pl/2692005700_1... 1. Co można ulepszyć/usprawnić? 2. Czy idea (oraz tryby pracy portów) są poprawne? 3. Czy wartość rezystora jest odpowiednia?...
[syntax=cpp]/* |------------------------------| | "pov_clock.c" | | Michal Olichwer | | Krzysztof Rosinski | | Wyswietlacz Widmowy !!!! | | ATmega 8MHz zew. | |------------------------------| */ #define L0_OFF PORTB|=(1<<4); #define L0_ON PORTB&=(1<<4) #define L1_OFF PORTB|=(1<<3); #define L1_ON PORTB&=(~(1<<3)) #define...
To mój pierwszy raz z DS18B20. Mam problem z odczytem temperatury z DS18b20. Pierwszy odczyt z układu daje warość 0x0550 czyli defaultowa wartosc po resecie. Jednak nastepne odczyty dają wartość 0x07FF. WTF? Poniżej listing. Procek taktowany 16MHz z zewnętrznego oscylatora. (F_CPU zdefiniowane na 16000000) int main () { uint8_t a=0; uint8_t...
Witam Uruchomiłem przykład z tej strony http://tuxgraphics.org/electronics/20090... i wszystko działa tak jak powinno i mam możliwosc zdalnego sterowania z serwera na avr. Problem jest z tym że nie rozumiem w jaki sposób realizowane jest w podanym niżej kodzie załączanie i wyłączanie czterech portów atmegi. Pomimo...
Ten kod jest wersją maksymalnie testową. Zawiera kupę niepotrzebnych rzeczy i jest w nim nieziemski bałagan - przepraszam. Jestem bardzo początkujący i próbuję pisać posługując się najprostszą składnią. Był pisany "na szybko", aby stwierdzić czy ta idea zadziała. I generalnia działa. Config Lcd = 16 * 2 $crystal = 1382400 ' fusebit ustaw xtal full swing...
Hi, mam tu AT45DB321D, na kosci faktycznie cos takiego pisze. ATMEL 0746 45DB321D SW SOIC8. Probowalem pomiedzy 10MHz a 500KHz, te same stabilne odpowiedzi. Jedziemy na 20MHz CPU, ext crystal resonator. wszystko obejrzalem pod oscyloskopem, SPI z ATMEGA88 dziala, to nie pierwszy taki moj boj na SPI, wiec czytam sobie datasheet i co pisze: Manufacturer...
Napociłem się nad tym i wypociłem takie coś. O mało nie zabrakło procka. Nie wiem czy działa bo dopiero jutro będę miał płytkę do tego. Nie śmiać się proszę i tak jak na moje zaawansowanie w bascomie nie wygląda nie-źle. Chętnie przyjmę poprawki. Podczas symulowania jak trafia na polecenie getrc5 wraca do początku i tak w koło ciekawe czemu tak się...
tutaj jest cały kod: [syntax=c] #include <avr/io.h> #define F_CPU 10000000 #include <util/delay.h> int main() { int8_t i; int8_t k; int8_t m; int8_t n; unsigned char liczba_LED [10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; DDRB = 0xFF; DDRD = 0XFF; DDRC = 0xFF; for(;;) { for(i=0; i<=9; i++) { PORTC = 0xC0; _delay_ms(10);...
Problem jest w tym ze tych diodek nie zapala. Też się zdziwiłem, że zamienili PD6 na PORTD6. Przykład z iom8a.h: [syntax=c]#define PORTD _SFR_IO8(0x12) #define PORTD7 7 #define PORTD6 6 #define PORTD5 5 #define PORTD4 4 #define PORTD3 3 #define PORTD2 2 #define PORTD1 1 #define PORTD0 0 [/syntax]
Czemu nie działa jakieś błedy kompilatora, jak nie tak to może źle napisany kod i się przy większej optymalizacji wysypuje. Jak coś to wrzuć kod nie działający. Heh, no ok, wrzucam więc kod. Od razu jednak uprzedzam, że to jest mój pierwszy program w C i mogą występować rażące programistów błędy. Poza tym kod jest nieco rozlazły - dla mnie bardziej...
Witam. Mam taki problem, gdyż chciałbym ogarnąć komunikację poprzez UART między dwoma mikro. Mam dwa uC: Atmegę 16, która działa jako master oraz Atmegę 88 jako Slave (na której będzie termometr, z którego będę odczytywał dane). Programy, definicje wyglądają następująco: plik RS485.h #indef RS_INT_H #define RS_INT_H //rozmiar buforów nadawania i odbierania...
Witam, Czy nakierowałby mnie ktoś w jaki sposób wykorzystując PWM można zrealizować płynne sterowanie jasnością diody LED przy użyciu pilota nadającego w standardzie RC5? Do tej pory udało mi się zrealizować płynne sterowanie jasnością diody wykorzystując PWM i microswitche - oto kod: [syntax=c]#define F_CPU 8000000UL #include <avr/io.h> #include...
Pierwszy przykład: dobrze. Drugi: ~0x0c=1 1 1 1 1 0 0 1? tutaj wkradł się błąd bo 11111001 = ~0x06 :). ~0x0c = 11110011. Czyli PORTD & ~0x0c = 11010001, a ( PORTD & ~0x0c ) | 1 << PD3 to poprostu zapalamy trzeci bit :) czyli: 1 1 0 1 1 0 0 1
Witam Mam prośbę o rozjaśnienie pewniej sprawy - mam do Atmegi8 podpięty odbiornik IR (SM3385P) cudo to zostało wymontowane z jakiegoś odbiornika Czujnik podpięty jest pod PB0 - do tego posiadam pilot TTS35AI - od zestawu SkyStar2 - do przetestowania wykorzystałem program ze strony http://hobby.abxyz.bplaced.net/index.php... Kod poniżej...
Witam. Borykam się z problemem przerwania INT1 w procesorze Atmega88p. Otóż przerwanie raz działa poprawnie , wykrywa odpowiednie zbocze , a innym razem załącza się praktycznie losowo . Napisałem specjalnie prosty programik aby zobrazować problem . Program jest pisany w bascomie jednak ze sporą ilością wstawek z assemblera . (Na czystym bascomie zachowuje...
Witam! Ja zwykle robię od razu tak: [syntax=basic4gl]Config portd = &b00001111 Portd = &b11110000[/syntax] W ten sposób łączę konfig i ustawienie pullup . W języku BASIC nie zaleca się oddzielania instrukcji dwukropkiem, zamiast: [syntax=basic4gl]If Pg = 0 Then Kier = 0 : Gosub Ruch_key End If[/syntax] Lepiej zapisać tak: [syntax=basic4gl]If Pg = 0...
problem rozwiązany... jakby na przyszłość ktoś potrzebowa inicjalizację dla atmega88/168 to załączam kod #ifndef RTL8019AS_H #define RTL8019AS_H #include "uServer.h" #define nop() __asm__ __volatile__ ("nop" ::) //magistrala adresowa #define RTL_ADDRESS_PORT PORTC #define RTL_ADDRESS_DDR DDRC #define RTL_A0...
Witam. Potrzebuję pomocy z dostosowaniem kodu napisanego na atmegę8 na attiny13. Domyślam się że największym problemem będą tutaj timery, ale jestem w ich temacie puki co zielony, a potrzebuję koniecznie(i niestety pilnie) odbiornika IR który zmieści się i będzie działał na attiny13. Jak całość kodu działa rozumiem(jest świetnie opisana komentarzami)...
Witam, odgrzebałem swój projekt odbiornika podczerwieni, który działa świetnie, rozpoznaje adres i komendy pilota. Wszystko obsłużone jak należy. Problemem jest wykrycie przytrzymania przycisku. Nie zrobiłem tego odrazu a teraz zaczęły się schody. Napisałem fragment odpowiedzialny za obsługę przytrzymania jednak nie działa :( Projekt na Atmega328p,...
Otóz tak wygląda pewien program do zczytywania komend z czujnika podczerwieni do którego wysyłane są sygnały za pomocą pilota w standardzie RC5: Poprawiłem tytuł. LordBlick
Pomijając częściowo słuszne uwagi kol. maciej_333, choć w Twoim przypadku możesz zrobić od nich odstępstwo, to sprawdź najpierw poprawność działania rezystora pull-up na PD2. Choć to mało prawdopodobne to teoretycznie jest możliwe, że wewnętrzny rezystor pull-up nie działa prawidłowo. Ponieważ wydaje się, że w programie prawidłowo poustawiałeś piny,...
Jeżeli nóżka jest wejściem to Pinc.0 , jeżeli wyjściem to portd.4 . Chyba.
Witam, Próbuję odpalić taki wyświetlacz po SPI: https://obrazki.elektroda.pl/7122846800_... Posiada on sterownik ILI9341, znalazłem bibliotekę glcd-ILI9341_2R8_240x320.lib i taki przykład: [syntax=vbnet] ' ' *********************************** ' * 2.8inch 65K full color LCD * ' * 240 x 320 dot [ILI9341] SPI * ' * Touch screen (XPT2046)...
Program powinien wyglądać następująco: $regfile = "m8def.dat" $crystal = 1000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B11111111 Portd = &B11111111 Dim I As Byte For I = 0 To 1 Portd.5 = 0 Waitms 650 Portd.5 = 1 Waitms 1000 Portd.5 = 0 Portd.6 = 0 Waitms 1000 Portd.6 = 1 Waitms 450 Portd.6 = 0 Portd.7 = 0 Waitms 500...
Steruje go za pomocą Atmega8A PORTD,6. Skonfigurowany jako wyjście bez pull-up'a. (układ z tymi 3 Mosfetami + Q2)
Zmień [syntax=c]PORTC = 0b00000000;[/syntax] na [syntax=c]PORTD = 0b00000000;[/syntax] i powinno działać, o ile dioda jest podpięta pod PD7.
Zazwyczaj zamykam rolety tylko do połowy, choć zdarza się że zamykam je całkiem. Stosując dostępne na rynku rozwiązania musiałbym stać koło wyłącznika, żeby zatrzymać w odpowiednim momencie ale jako człowiek bardzo wygodny postanowiłem zbudować sterownik, który zautomatyzuje tę czynność. Założenia - możliwość zapamiętania/zmiany punktu półotwarcia,...
Dioda podłączona jest do PORTD.7: DDRD = 0xC0; Czyli ustawiona jako wyjście. Pozostałe linie są jako wejścowe, bo narazie tsama diode chce wysterowac.:)
Jeżli to ma być tylko kilka f przełączanych skokowo to nie byłoby by problemu z wyjątkiem tych 10MHz. (Są AVRy napędzane 20MHz ale to nieco za mało do uzyskania 10MHz na wyjściu). Jedyne co można zrobić nie angażując sporej ilości dodatkowego sprzętu to wykorzystać szybki PWM, który jest w niektórych uC stosowany (np. ATtiny26 ma mnożnik PLL do PWM...
Wg. mnie nie będziesz w stanie zrobic tego układu. Nie masz o tym zielonego pojęcia. Wypisujesz tak durne pytania że gdyby to nie było forum to zastanawiał bym się czy gdzieś jest ukryta kamera. Chodzi mi o pytanie "ma to jakieś znaczenie co gdzie podłączę?". Czyli wszystko pójdzie z dymem. Nie no masz racje z tym pytaniem to przegiąłem. Czyli kryształ...
To znaczy, że zawartość tego rejestru nie zmienia się automatycznie w takt przetwornika? Nie do końca rozumiem jak mam to inaczej zrobić. Jak uaktualnić ADCW? Dodano po 3 Ta nieskończona musi być, bo wyjdzie inaczej z funkcji. Chodzi o to że ustawienie PORTD= 0x00, powoduje odcięcie zasilania przez przerzutnik. Inaczej stan niski by trwał zbyt krótko...
Nie wiem jak robiłes ten generator na Attiny, ale masz ustawioną Mege na 8-12MHz więc może w FuseBitach ustaw Attiny na 8MHz (albo podłacz zewnetrzny rezonator 8-12MHz) i włącz CKOUT - wyjscie zegara systemowego na PORTD.2 Medze8 wpisz domyślne L -E1 H -D9
Przepraszam. No to zacznę od początku. Układ według tego schematu: [url=http://easyeda.com/export_TfxrJ1jd7... Na komputerze też nie chce dodać do postu. Musiałem tak. A oto kod: [syntax=Bascom] $regfile = "m8def.dat" ' $crystal = 1000000 Config...
Co mogę zrobić, żeby ta temperatura była stabilna? Masz to na płytce arduino czy jakieś innej? Dla czujników majacych napięcie, musisz mieć stabilne napięcie referencyjne (zasilające). No i odfiltrowane kondensatorami. Sygnał z czujnika również przez filtr RC. Nie używane piny portów mikrokontrolera ustaw na wyjście, lub podciągnij do plusa (np PORTD|=0xFF)...
Witam Mam problem z uruchomieniem wyświetlacza na sterowniku jak w temacie. Zakupiłem sobie wyświetlacz w sklepie kamami o oznaczeniu LCD12864-NEG_BLUE i przygotowałem dla niego płytkę, której schemat jest w załączniku. Sercem układu jest ATmega8 taktowana z częstotliwością 8MHz (wew. RC), ustawienia Fuse bitów: H-0xD9 L-0x94. Program pisałem wykorzystując...
Witam Robię sobie $regfile = "m8def.dat" 'atmaga8l $crystal = 1000000 'Diody obiekt 4 Config Portb.7 = Output Config Portd.5 = Output 'Diody obiekt 1 Config Portd.6 = Output Config Portd.7 = Output 'Dioday obiekt 3 Config Portb.3 = Output Config Portb.2 = Output 'Diody obiekt 2 Config Portb.5 = Output Config Portb.4 = Output 'DUO-LED Config...
Sprawdź, czy mikrokontroler w ogóle coś robi, np. podłącz LED do jednej z linii portu D, żeby pokazywała, kiedy próbujesz uaktywnić wiersz. Wygaszaj wiersz (PORTD = 0) nie po delay, a tuż przed SET_ENABLE. Usuń drugie CLEAR_ENABLE. No i pokaż schemat, jeśli wszystko inne zawodzi. Odpowiedź na ostatnie pytanie znajdziesz oczywiście w datasheet.
pierwszy błąd - 'UBRRH' undeclared (first use in this function) Przepraszam za niedopatrzenie. W przypadku mikrokontrolera Atmega8a, rejestry UBRRH i UBRRL są połączone w jeden rejestr o nazwie UBRR. Oto jak powinna wyglądać poprawna funkcja inicjalizacji UART: [syntax=c] #define BAUD 9600 #define MYUBRR F_CPU/16/BAUD-1 void USART_Init(unsigned int...
Robiłem co mogłem żeby to jakoś na schemacie wyglądało Wiem że w kodzie jest straszny bałagan ale co najważniejsze - działa W założeniu co do układu: Układ co jakiś czas sprawdza czy przez kontaktron może przepłynąć prąd. Jeśli nie - upewnia się jeszcze raz i poprzez wysyłanie sygnałów do przekaźników w odpowiedniej kolejności (te zaś są połączone z...
Witam drodzy koledzy Czy ktoś z was może miał taki problem i potrzebę aby wyjście PWM było na innej nodze niż wynika to z noty w moim przypadku mega48 ma pwm2b na 1 nodze (portd.3) a potrzebuję mieć przebieg prostokątny na nodze 32 (portd.2). (oczywiście chciał bym to uzyskać bez lutowania nóżek) oraz drugie pytanie pewnie prostsze jak zmienić DIV8...
Pomyślałem sobie że może funkcja ShowOnLed zmienia stan PORTD tylko do czasu jej zakończenia więc dodałem opóźnienie przed wyjściem z funkcji wgrałem program i ruszyło. Postanowiłem jednak to sprawdzić i usunąłem delay i wgrałem stary program jednak ku mojemu zdziwieniu układ działa, nie mam zielonego pojęcia co się stało. Cały układ mam na płytce stykowej,...
Dobra, poddaje się. Szukałem, czytałem, kombinowałem i nic. W wypadku 1 dioda podwójna świeci cały czas, a tamte migają. W wypadku 2, ta nie świeci, a tamte dwie migają. Niezależnie od włącznika, który przecież jest wyjściem w stanie 1. Nie rozumiem totalnie co się dzieje. Kod1: [syntax=Bascom][/syntax] $regfile = "m8def.dat" ' $crystal = 1000000 Config...
Witam, chciałbym zainicjalizować wyświetlacz LCD, pisząc program w asemblerze, na podstawie ogólnodostępnego schematu blokowego w internecie napisałem program, który niestety nie działa. Czy mógłby mi ktoś pomóc znaleźć błąd?(RS-> C0, E -> C1, RW -> GND, bity odpowiedzialne za wysyłanie danych są podłączone do portu D) [syntax=Bascom].include "m8def.inc"...
Niestety nie moglem odpowiedziec na poprzedni post, wiec zalozylem nowy: Chodzi mi o wplyw czestotliwosci na funkcje opoznienia. Mam prosty program: while(1) { PORTD |= _BV(2); _delay_us(100); PORTD &= ~_BV(2); _delay_us(100); } do PD2 jest podpieta dioda, gdy zmieniam Atmege (i Eclipse) na: * 8Mhz dioda...
Dodano po 2 Na wyjściu pinów (tych przyciemnionych segmentów) mam 1,65V. Dlaczego? Wydajność prądowa Portu d 0,08mA nie licząc tego dobrze świecącego. Wypróbowane na 3 prockach i na 3 wyświetlaczach.
Witam . troszkę pieniążków poszło ale złożyłem zestawik testowy na Atmega8L , zaczynam zabawę z programowaniem i na początku problemy , próbuje uruchamiać zadania z książki Marcina Wiązania i poległem na migających diodach zmieniających kierunek po naciśnięciu switcha. Kod programu: $sim $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output...
Poproszę o sprawdzenie kodu. W gruncie rzeczy działa, tak jak powinien: jeden z przycisków diodę zapala (czy też "zaświeca"), ale po zwolnieniu go ona gaśnie. Naciśnięcie drugiego zapala inną diodę, którą wyłącza ponowne naciśnięcie tego samego przycisku. Chodzi mi głównie o wytknięcie ewentualnych mankamentów, możliwości, kiedy ten kod się mógłby nie...
Tu to co brakowało w poprzednim poście: $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 On Timer0 Multi_wysw W1-W6 to wyświetlacze, pierwsze zegary robiłem bez sekundnika, ten już je ma, chyba ciekawszy efekt. W budowie nie ma prawie żadnej różnicy, te 2 lampy więcej nie robią jakiejś poważnej różnicy. Potrzeba...
Na twoim miejscu najpierw zmontowałbym na płytce stykowej układ na rysunku jak poniżej, bo to jak zasilasz mikrokontroler budzi wątpliwości :) http://obrazki.elektroda.pl/9427841200_1... Zerknij do pliku HD44780.h i dopiero wtedy podłącz wyprowadzenia wyświetlacz tak jak masz tam zdefiniowane. Niektóre wyprowadzenia masz ustawione na...
Witam. Niedawno zacząłem przygodę z mikroprocesorami i doszedłem do etapu budowy sterownika do rolet. Część mechaniczna została wykonana z wykorzystaniem serwomechanizmu bez elektroniki i bez blokady. Niestety silnik spaliłem napięciem 9V, a próbowałem takim dużym, ponieważ Tower Pro SG50 z siłą 0,6kg/cm nie dawało rady przy 6V. Ale to i tak było z...
Witam. Problem dotyczy zrealizowania układów kombinacyjnych na mikrokontrolerze Atmega8a i sygnalizowaniem stanów za pomocą 4 diód. Do zmiana stanów na wejściu będę używał 4 zwykłych przełączników typu tact switch. [syntax=c]#include <avr/io.h> #include <avr/delay.h> #define LED_ON1 (1<<PB0) #define LED_ZMIANA1 PORTB ^= LED_ON1 #define...
Witam, zaprogramowałem sobie ATmegę8L takim oto kodem: $regfile = "m8def.dat" $crystal = 8000000 'Config Portd = &B00000100 'Portd = &B00110011 Config Portd = Output Config Portb = Output Config Portc = Output '--------------------Ustawienie LCD------------------ Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4...
Witam, Mam mały problem, próbuję wykonać komunikację interfejsu szeregowego z modułem bluetooth XM-15B aby wysyłać dane z aplikacji na telefonie, która będzie sterować kolejno odpowiednimi elementami. Problem polega na tym, że próbuje zainicjować UARTA, wysyłam paczkę danych, uC ma sprawdzać te informacje i na ich podstawie zapalać albo gasić odpowiednie...
Witam Mam prosty układ z Atmega8A i czujnikiem HC-SR04. uC taktowany fabrycznie 1MHZ. Wszystko niby działa poprawnie - dostaję poprawne pomiary od 2cm do 4m. Problem w tym że nie wiem do końca dlaczego. Z tego co rozumiem żeby otrzymać zmierzoną odległość, należy: 1. Podzielić szerokość impulsu w us przez 58 2. Obliczyć: Czas trwania stanu wysokiego*prędkość...
witam. chodzi mi o atmega8L w twoim programiku chyba jest błąd zamiast sbi ADCSRA, ADIF powinno być cbi ADCSRA, ADIF a tu napisałem swój programik i niestety nie działa... może ktoś tu widzi jakiś błąd??? sygnał analogowy podaje na PC0 korzystam z wewnętrznego źródła napięcia odniesienia jeszcze jedno pytanko jak określa sie w asemblerze z jaką częstotliwością...
Witam Od kliku dni walczę nad implementacją ENC28J60 do Xmegi128A3U. Najpierw udało mi się zrobić malutki serwerek na Atmega32 i działa poprawnie ( bazowany na książce Mirka ). Teraz chcę go przełożyć do Xmega i nawet nie chce go pingować. Przypuszczam że błąd leży gdzieś w SPI. Xmega taktowany zewnętrznym kwarcem 16MHz , SPI - 1MHz, ENC28J60 taktowany...
Witam, chciałem się podzielić z szanownym gronem moim problemem, który napotkałem, gdy chce odebrać coś w RC5. Napisałem (a właściwie to skopiowałem z helpa) program do odbioru rc5, i tu pojawia się problem, ponieważ na wyświetlaczu cały czas mam wartość 255 255 a w drugiej lini pomocnicze 0 0... (jest to tylko test) nieważne, czy podłącze pin do masy,...
(at)tronics Nie ma. Jest taki: *- -* *- -* Dodano po 3 Zmieniłem kod tak że; [syntax=c] #include <avr/io.h> #include <util/delay.h> #define LED_PIN (1<<PD7) #define LED_ON PORTD &= ~LED_PIN #define LED_OFF PORTD |= LED_PIN #define LED_PIN2 (1<<PB0) #define LED_ON2 PORTB &= ~LED_PIN2 #define LED_OFF2 PORTB |= LED_PIN2...
Słuszna uwaga, zmieniłem kod: $regfile = "m8def.dat" 'Atmega8 $crystal = 8000000 'kwarc 8MHz $lib "i2c_twi.lbx" 'sprzetowy I2C Config Scl = Portc.5 Config Sda = Portc.4 Config Twi = 100000 'predkosc 100kHz Const Adres_w = &B11010000 Const Adres_r = &B11010001 Config Portd.0 = Output Led Alias Portd.0 Set Led I2cstart Gosub Blad I2cwbyte...
OK, i have tested this code on uP today on prototype board. There was lot of mistakes, i chave correct them. But idea is still the same. There is working code, tested on Atmega8a, 8MHz internal. Changes only init (diffrends ports, and RX interrupt handle) and main loop. I dont use get_dips() function, becouse i havent dips, and use constant start adress....
Witam, Próbuję od 0 zacząć przygodę z DS1307 dla Atmega8L ale jakoś mi nie wychodzi. Wzoruję się i przepisuje kod z http://obrazki.elektroda.pl/4411854700_1... Przyznam, że na pierwsze wojaże wydaje się to dosyć trudne, obsłużyć DS1307... [syntax=c] #include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h>...
portd atmega88 atmega portd portd atmega8
odblokować eberspacher warsztat pomysły honda civic termostat
kondensator rozruchowy odkurzacz rowenta bully
Dlaczego bęben pralki się rysuje? Przyczyny i rozwiązania Niskie ciśnienie wody po odkręceniu kranu - przyczyny i rozwiązania