Z portem A moze byc tego rodzaju kwestia ze nie ma on zasilania. PortA ma osobne zasilanie na nozce AVcc.
[syntax=c] DDRA |= (1<<PA1) | (1<<PA4); // Ustawiamy (np.) porty A1 i A4 jako wyjście PORTA &= ~((1<<PA1) | (1<<PA4)); // ustawiasz logiczne "0" na powyższych bitach portu A [/syntax]
W ogóle nie masz jakiejkolwiek obsługi tych "duchów". Tak więc nie tylko trzeba je minimalizować, ale w ogóle jakoś obsługiwać. A robi się to tak że się najpierw wyłącza poprzednią cyfrę, a potem dopiero załącza kolejną. Najprościej to po prostu przed tymi wszystkimi Selectami ustawiaj Portb i Porta w stan nieaktywny (nie wiem jaki on jest więc nie...
Build started 6.4.2014 at 00:25:04 avr-gcc -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Proba_10.o -MF dep/Proba_10.o.d -c ../Proba_10.c avr-gcc -mmcu=atmega16 -Wl,-Map=Proba_10.map Proba_10.o -o Proba_10.elf avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature...
int main(void) { //zliczanie timera od 0 -> wart OCR1A TCCR1A |= ( _BV(COM1A0)| _BV(COM1A1)); TCCR1B |= ( _BV(CS10) | _BV(WGM12) ); ustaw_OCR1A(119); TIFR |= _BV(OCF1A); // wlaczenie flagi OCM if(TIFR!=0) { TCCR1B = 0x00; DDRA |= _BV(PA6); PORTA &=...
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...
Aby kod łatwo było analizować używaj znaczniki SYNTAX: [syntax=c] tu wklej Twój kod [/syntax] Plik : HD44780.c Plik : HD44780.h Dodano po 25 Ja połączyłem je w ten sposób ale pewnie źle bo wystąpiły błędy w kompilacji. Proszę o pokazanie mi sposób połączenia tych dwóch plików w prawidłowy sposób. Pierwsze uwagi: - te dwa pliki to tylko...
jak najbardziej możesz używać np. 5 pinu PORTA jako ADC a pozostałych jako ADC np. http://www.nopaste.pl/6gt
Witam, Pomysł dobry ale sypie się najprawdopodobniej z powodu zbyt dużej ilości przerwań. Proponuje projekt sterownika "równoległego", taki wykorzystałem w mojej pracy inżynierskiej. Wprawdzie korzystałem tylko z 8 serw ale 16 też obsłuży po drobnej modyfikacji. Program zabiera większość mocy procesora do obsługi przerwań ale tylko przez czas 2ms potem...
Kiedyś przerobiłem na szybko jedną z dostępnych bibliotek na obsługę kilku ds18b20 na różnych liniach: [syntax=c] //#ifndef 1wire //#define 1wire #include "hardware.h" ////////////////////////////////////////... // ROM commands #define DS18B20_ROM_SEARCH 0xF0 #define DS18B20_ROM_READ 0x33 #define DS18B20_ROM_MATCH...
.INCLUDE "m16def.inc" ldi R16, 0xFF out DDRA, R16 .EQU SYS_FREQ = 16 Petla: ldi R16, 0b11111111 out PORTA, R16 rjmp Delay 'to jest skok we wskazane miejsce a nie do procedury. powinno być rcall Delay ldi R16, 0b00000000 out PORTA, R16 tu też brakuje opużnienia rjmp Petla Delay: ldi R16, 1 ldi R16, 1 push R18 push R19 push R20 push R21 mov R20, R16 mov...
Witam. Programuję mój mikrokontroler atmega16 i mam problem z zapisem wartości z portu A (wejściowego) do pola bitowego. Używa takiego kodu: polebiotwe = PORTA Podczas kompilacji pojawia się błąd, że PORTA jest innego typu niż polebitowe. Jakiego typu jest PORTA i w jaki sposób mogę go zapisać do pola bitowego? Wiem, że można tak: polebitowe.z1 = PORTA0;...
http://obrazki.elektroda.pl/7114210100_1... Witam wszystkich serdecznie ! Z racji tego, że zbliżają się święta postanowiłem podzielić się z wami projektem elektronicznego drzewka szczęścia. Urządzenie powstało prawie rok temu i było prezentem urodzinowym dla mojej dziewczyny którą serdecznie pozdrawiam !!! :D Założenia do projektu:...
Nie wiem na które pcb patrzysz , to ostatnie do pełnej wersji z pomiarem prądu i napięcia ,patrzę i widzę że jest OK . pin40 i pin39 są podpięte do dzielnika kondensator żeby nie pływał pomiar zbytnio. nie widzę tego o czym piszesz . Wieczorem sprawdzę jeszcze raz i podam zaktualizowane . Ok jest wieczór więc zamieściłem na 2 str. schemat i pcb w eagle...
Mam taki problem. Połączyłem sobie taką płytkę, ustawiłem portA ATmega16 jako wyjście, i daje on w stanie wysokim tylko 1.5V. Ktoś wie, dlaczego? Z tego, co wyczytałem w DS, powinno być min. 4.5V.
Musisz ustawić PORTB jako wyjście, a nie PORTA :).
Witam, zakładam nowy wątek ponieważ nie mogę nigdzie odnaleźć sposobu na rozwiązanie problemu. Otóż mam mikrokontroler Atmega16 z podłączonym modułem AVT 1635 - Bluetooth BTM 222. Połączenie fizycznie wygląda tak, że TXD modułu jest zwarte z TXD mikrokontrolera, podbnie z RXD. Mikrokontroler ma podłączone do portu A 8 diod LED. Podłączyłem do niego...
Ta nakładka wymagała jakiegoś libusb ale namieszało mi tak w kompie że zablokowało prawie wszystkie sterowniki (masakra) czy może mi ktoś powiedzieć jak to zrobić jakich sterowników użyć? A czy mugłby mi powiedzieć jak zrobić program zliczający bo taki mi niedziała: 'Program Probny $regfile = "m16def.dat" $crystal = 1000000 Config Portd = Input Portd...
Nie powinieneś czasem odczytywać UDR tylko raz? http://www.atmel.com/Images/doc2466.pdf Strona 145: A second Buffer Register has been added. The two Buffer Registers operate as a circular FIFO buffer. Therefore the UDR must only be read once for each incoming data! Popraw main i sprawdź: [syntax=c]int main(void) { DDRA |= (1<<WE_A)|(1<<WE_B);...
Witam, Opiszę może krótko sytuację: mam atmega16, na timer1 mam ustawiony tryb pracy pwm, używam kilku pinów na PORTD i PORTA do sterowania mostkamiH. Potrzebuję odmierzanie czasu 10ms i chciałem to zrealizować przy pomocy przepełnienie od timera0 lub timera2. Niestety kiedy chcę obsługiwać przerwanie od przepełnienia T0 lub T2, to całkowicie psuje...
Kompilator rzuca ci warningami bo brakuje deklaracji funkcji przed main. Dopisz te trzy linijki gdzieś przed main: [syntax=c]void wszystkie_pojedynczo_rozjasnij(unsigned int kolor); void wszystkie_pojedynczo_zgas(unsigned int kolor); void pojedynczo_rozjasnij(unsigned int ktory, unsigned char stan_wylaczenia, unsigned char stan_wlaczenia);[/syntax]
Reset podciągnąłem rezystorem 10k do vcc. Bez efektu. Może chodzi o to, że aby wykorzystać PORTA trzeba jakość odblokować go za pomocą fusebitów.
int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xff; /* wejścia podciągnięte do VCC */ DDRA = 0x00; PORTA = 0xff; while(1) { if(!(PINA & 0x01)) { PORTD = 0b00000001; } if(!(PINA & 0x02)) { PORTD = 0b00000010; } if(!(PINA & 0x03)) { PORTD = 0b00000100; } } } Trzeci przycisk nie działa... Reszta tak
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ć...
Dzięki wszystkim :D Ruszyło choć mam inny problem - wszystko się zaczęło gdy chciałem uruchomić wyświetlacz graficzny DMF5005NY–LY. Ponieważ nie ruszył, zacząłem od migającej diody - czy procek sprawny. Teraz wiem, że procki ok - trzeba powalczyć z wyświetlaczem - ale to inny temat. DZIĘKUJĘ :D Config Porta = Output Do Set Porta.1 Wait 1 Reset...
Przede wszystkim błąd jest tutaj: S1 Alias Porta.3 (O ile s1 to button)
Witam Wykonałem układ elektroniczny którego zadaniem jest pomiar napięcia na porcie adc. Zadaniem kodu który jest poniżej jest wykrycie stanu wysokiego na porcie PA(6) i pomiar napięcia z portu PA(0) według odpowiedniej instrukcji czyli pomiar trzykrotny, porównanie ich ze sobą i jeżeli są takie same to ma włączyć się dioda czerwona, oraz włączyć przekaźnik...
Witam Dla większości problem pewnie barszczowy, ale dla mnie ostatnio to bariera nie do przejścia:P Z uczelni pozostała mi taka płytka gdzie jest atmega16 czujnik MCP9700 jakieś 4 diody i tym podobne elem. do nauki. Przerobiłem oślą łączkę, jest tam opis jak zadziałać z wyświetlaczem LED 7seg. Prosty programik licznika do 10(0-9) do incr eedr if eedr=10...
dziala, dzieki za pomoc #include <avr/io.h> #include <util/delay.h> #define rel1 PA0 #define rel2 PA1 int main(void) { DDRA = 0xff; while(1) { PORTA = ((1<<rel1)|(1<&... _delay_ms(2000); PORTA &= ~((1<<rel1)|(1<... _delay_ms(2000);...
Schematu jako takiego nie mam. Konfiguracja jest opisana na początku kodu: [syntax=c] #define SET_OUT_CLR DDRA |= (1<<PA4) #define SET_CLR PORTA |= (1<<PA4) #define CLR_CLT PORTA &= ~(1<<PA4) #define SET_OUT_DT DDRA |= (1<<PA5) #define SET_DT PORTA |= (1<<PA5) #define CLR_DT PORTA &= ~(1<<PA5) #define SET_OUT_RST...
No to zacznijmy od początku main(): [syntax=c]DDRA = DEBUGER | BUZZER; //ustawienie kierunku pinu portu buzzera DDRB = PODSWIETLENIE;//ustawienie kierunku pinu portu podswietlenia DDRC = LED_PR | LED_PT | LED_T | LED_TR; //diody LED przyciskow DDRD = GRZALKA | NAPOWIETRZACZ;//ustawienie kierunku pinu portu napowietrzacza //podciądanie wejśc do VCC PORTB...
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...
... PORTA &= 0x01;//zapalenie LED0 ... PORTA |= 0x01;//zgaszenie LED0 ... PORTA &= 0x02;//zapalenie LED1 ... PORTA |= 0x02;//zgaszenie LED1 ... watpie czy takie działanie da poprawne sterowanie diodami nie zależnie czy mają się zapalać 1 czy zerem, działanie dla przykładu pierwsze ustawi najmłodszy bit czyli będziesz miał 0b00000001 po odczekaniu ta...
Witam. Programuję Atmega16 programatorem USBasp. Mój program wygląda następująco: #include <avr/io.h> int main() { DDRA = 0xFF; while(1){ PORTA |= _BV(0); } } Wrzucam program do mC i port nie zmienia swojego stanu na wysoki. Sprawdzam miernikiem i jest 0V. To samo jest dla innych pinów tego portu oraz...
Dopiero startuje w temacie mikrokontrolerów z książką "Mikrokontrolery dla początkujących" w ręku więc proszę o wyrozumiałość. Napisałem program w BASCOMIe gdzie na początku mam: Config Portb = 255 : Portb = &B00000000 Config Porta = &B11111100 : Porta = &B10000111 PortB jest podłączony pod linie segmentowych wyświetlaczy, a PortA 3-6 pod tranzystory...
Zrobiłem zewnętrzny generator na procku 8515, jego kod wygląda tak: $crystal = 8000000 $regfile = "8515def.dat" Config Porta = Output Porta = &B00000000 Wait 2 Do Waitus 20 Set Porta.0 Waitus 20 Reset Porta.0 Waitus 20 Loop odlutowałem kwarc i kondki od wejscia xtal1 i 2 atmegi, sygnał z generatora podałem na Xtal1 i nic :/ - to samo co było - programator...
Zmieniłem PORTC na PORTB, JTAG nie był wyłączony - mój błąd. Co ciekawe, teraz jest wyświetlany napis: "He!" przy czym wykrzyknik jest niestabilny, mruga bardzo szybko. Sygnały zostały podłączone pod: R/W - PORTB.2 E - PORTB.1 RS - PORTB.0 PORTA - transmisja 8b. I jak to w elektronice, działa, ale nie do końca, dalej nie ma pełnego napisu: Hello!
Witam. Posiadam programator USBasp napisałem taki program w BASCOM aby migał diodą LED. Niestety nie działa (Mam zainstalowany AVRdude). W czym problem?? $regfile "m16def.dat" $crystal = 1000000 Config Porta = Output Porta = &B11111111 Do Waitms 500 Porta = &B11111110 Waitms 500 Porta = &B11111111 Loop End Kod programu umieszczamy w znacznikach...
Witam, dzisiaj stwierdziłem że rysowanie i podawanie tutaj schematu nie ma większego sensu, opiszę sprawę. Podłaczyłem katody ledów do masy przez oporniki, a anody do poszczególnych pinów uC. Teraz tak wklepując ten program w pamięć pocesora: [syntax=c]$regfile = "m16def.dat" $crystal = 1000000 Config Portb = Output Portb = &B00000000 Config Portd =...
Celem jest zapisanie w pamięci AT24C04 jakiś danych. Program w Bascomie: $regfile = "m16def.dat" $crystal = 4000000 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2 Config Lcd = 20 * 4 Dim Temp As Byte Cls Cursor On Blink I2cstart I2cwbyte 162 I2cwbyte 1 I2cwbyte 100 I2cstop Waitms...
ok. nie maproblemow z zaprogramowaniem. config porta = output to znaczy, ze sa wejsciami? nastepna linia porta= &B00000000 oznacza wejscia ? bo w/g mnie to powinny byc jako wyjscia. jesli sie myle to prosze o podanie informacji jak je ustawic. pozdrawiamMarek p.s. potrzebuje by smigal na wewnetrznym oscylatorze.
w programie glownym nie ustawiasz portow tylko w bibliotece. schemat ok :) tzn jesli korzystac z tej ze strony ktora podales :) konkretnie tutaj #define LCD_RS_DIR DDRA #define LCD_RS_PORT PORTA #define LCD_RS (1 << PA2) #define LCD_E_DIR DDRA #define LCD_E_PORT PORTA #define LCD_E (1 << PA3) #define LCD_DB4_DIR DDRA #define...
Kupiłem właśnie serwo " Tower Pro SG-5010 ". Wcześniej się nie bawiłem serwami. Sterowane jest z atmegi16, i zasilane dobrym zasilaczem 5V (wspolny dla atmega16 i serwa). Sterowanie wyglada ogolnie tak: PORTA |=_BV(0); //-ustaw _delay_ms(wysoki_stan); PORTA &=~_BV(0); //-skasuj _delay_ms(niski_stan); Czyli bardzo prosto. Zgodnie z tym co oczytałem się...
Witam Sygnał R/W daj na stałe do masy, dorzuć elektrolity przy stabilizatorze. Zamiast: SIGNAL (SIG_INTERRUPT0) { //otrzymalem sygnal ustawiam na porcie PA0 stan niski PORTA = 0x01; //po 10ms przestaw na stan wysoki waitms(10); PORTA = 0x11; } Bo nadpisujesz cały port, zamiast ustawić tylko to co Cię interesuje Bardziej czytelnie:...
Witam! Tak jak w temacie chciałbym móc sterować kolorową diodą RGB, za pomocą mikrokontrolera Atmega16... Testowo zmontowałem płytkę wg. tego schematu: http://obrazki.elektroda.pl/9226057100_1... (masa podłączona do gnd (czego nie widać na schemacie ale jest) , a anody do pinów mikrokontrolera - poprzez rezystory (100ohm)) Nie jestem...
Mam do Was pytanie dotyczące fragmentu programu, w szczególności pętli for, która wykonuje się 16 razy i każde kolejne wykonanie trwa dłużej niż poprzednie. Czas trwania ostatniej pętli jest kilkanaście razy dłuższy niż pierwszej i przyrost czasu wykonania każdej pętli jest z grubsza liniowy. fragment programu: [syntax=c] void send_frequency(void) {...
Witam! Wyświetlacz podłączony jest w konfiguracji 4-bitowej: PA.0 - D7 PA.1 - D6 PA.2 - D5 PA.3 - D4 PA.4 - RS PA.5 - R/W PA.6 - E Inicjacja wygląda tak: void main(void) { DDRA = 0xFF; PORTA = 0x00; //*************INICJACJA WYŚWIETLACZA**************************// __delay_cycles(1280000);// kwarc 8MHz - opóźnienie 160ms PORTA =...
ADTS2:0 dla trzech 0 jest free running mode. Dodano po 2 Doczytałem, że konwersja jest wykonywana wtedy gdy jest odczytywany ADC. Dodałem zmienną volatile int w main i w pętli głównej zapisuję do niej rejestr ADC. Teraz zadziałało. Czy to jest dobre rozwiązanie? [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #define LED1 PC0 int...
Zmieniłem trochę program. diody zasilam w ten sposób: http://obrazki.elektroda.pl/6188819000_1... ale w dalszym ciągu bez podania masy na wejście 2 diody się świecą. [syntax=c]int main(void) { DDRB = 0xFF; DDRA = 0b00000000; PORTA = 0xFF; while (1) { if(bit_is_set(PINA, PA1)) PORTB =0b11111110; else PORTB =0b11111101; } }[/syntax]
Witam. Zabrałem się za matrycę LCM5505-32ntk. Znalazłem wyprowadzenia do niej (LCM5505a.pdf ) jednak tam nie ma żadnych przebiegów czasowych:(. Znalazłem natomiast coś o matrycy LCM5505-22nak (LCM5505.pdf) ,nie jest tam za dużo ale już coś i przypuszczam że działa podobnie do LCM505-32ntk. I teraz chciałem podłą czyć ten LCD do ATmega16 na 16MHz (kod...
atmega16 porta portc porta vector zamek porta
silnik ergorapido podświetlić tablica rozdzielczy polska dekoder
wkrętarka milwaukee reset pieca buderus
Zakłócenia radiowe w tunerze UNITRA AS631 przez dekoder Akumulator Xbox Series X/S nie ładuje się: przyczyny i rozwiązania