O ile pamiętam wersje A mają mniejszą wydajność prądową portów i pinów. Sygnałowo są zgodne ale mają kilka rejestrów więcej np. do ustawiania parametrów zegara wewnętrznego i opcji sleep. N.
Może spróbuj sterowania w inny sposób - za pomocą przerwania INT2 (wywoływanego przyciskiem) uruchamiaj i zatrzymuj licznik TC0 (parametry PWM są ustawione u Ciebie poprawnie) tzn ustawiaj bity TCCR0|=(1<<CS00)|(1<<CS01) kiedy chcesz uruchomić licznik i zeruj je jeżeli chcesz zatrzymać. Samo ustawianie wartości wypełnienia czyli rejestr...
Nie jestem pewien czy tak powienienem to zrobić. W wyniku takiego sprawdzenia ustawione są 2 bity MCUCSR1..0 (PORF i EXTRF) - jest tak po podłączeniu zasilania i stan nie zmienia się przy restartach. Skasuj wszystkie flagi resetu na początku programu i napisz, która się ustawia po tym domniemanym restarcie.
Nie. Ustawiam tylko TCCR0 = 5 za każdym powrotem do początku zliczania F1, F2,F3
Szczerze to nie wiem jaką mam częstotliwość, ponieważ nic nie ustawiałem. Gdzieś czytałem, że jak nic się nie ustawia to automatycznie jest ustawione 1MHZ dlatego po prostu nic nie ruszałem
Nowszy FW USBaspa nie potrzebuje zworki, prędkość ustawia się parametrem w avrdude. Stąd warning. Uaktualnij FW albo olej warning jeżeli wszystko działa :)
Uruchom poniższy kod w CManiaku: http://mikrokontrolery.blogspot.com/p/cm... [syntax=c]#include <dondu/dd_atmega8.h> //Wymagane do symulacji definicji i rejestrów ATmega8 const char *byte_to_binary(int x){ int z; static char b[9]; b[0] = '\0'; for (z = 128; z > 0; z >>= 1){strcat(b, ((x & z) == z)...
#define F_CPU 1000000UL Tego tutaj się nie pisze to ustawia się w opcjach projektu niezależnie z jakiego środowiska kożystasz Możesz mieć później kłopoty
Załóżmy, że to też błąd przy wklejaniu kodu (inaczej asembler zgłosiłby błąd). Powinno być R21 , a nie R121 . Być może to też błąd przy wklejaniu. Bity WGM12 , CS12 oraz CS10 nie znajdują się w rejestrze TCCR1A tylko w TCCR1B . Istotne jest jednak to, że ustawiając tylko bit WGM12 ustawiasz TIMER1 w tryb 4, czyli tryb CTC, w którym timer liczy od 0...
Dlaczego tak sobie komplikujesz życie? Ściągnij Atmel Studio 6.1 a nie przestarzały WinAVR, kup sobie programator AVR ISP mkII albo jego klon na allegro. To wszystko OD RAZU DZIAŁA bez ustawiania czegokolwiek albo cudowania z makefile, avrdude i innymi bajerami.
Podłączyłem kwarc ale nie mam pojęcia jak poustawiać te wszystkie rejestry żeby to działało prawidłowo. Ustawiałem wszytskie kombinacje : http://obrazki.elektroda.pl/4159196700_1... Na wyjściu dostaje piski i nic więcej. Pomocy :/
Witam, Zaczynam swoją przygodę z mikrokontrolerami AVR. Kupiłem płytkę testową EVBavr05, do tego programator USBASP i procesor ATmega32A-PU. Wpiąłem procka w podstawkę na płycie, zainstalowałem sterownik programatora i podpiąłem go do kompa USB oraz do płytki ISP, ustawiałem w Bascomie: Chip m32def.dat oraz Programmer USBASP. Napisałem prosty program...
Witam, jak w temacie, czyli źle wyświetlają mi się cyfry na LCD w sensie tak chcą ( 00 -> 01 -> 00 -> 01 -> 00 -> 08). Nie wiem po jakiej stronie leży problem. Pracuje na płytce ewaluacyjnej GOTRONIK z Atmega32A z RTC PCF8583 ( INT-PD2, A0-GND, SDA-PC1, SCL-PC0) Umieszczam kody programu: Main.c [syntax=c]#define F_CPU 16000000L #include...
Echh, szaleją mi te odczyty... Postanowiłem zrobić w końcu self-test urządzenia - i wychodzą strasznie małe wartości (58, -3 i -7 odpowiednio dla [x,y,z] przy "positive bias" i -57, -55, -50 przy ujemnym)! Chciałem sie poradzić czy na pewno dobrze go robię, mianowicie (kolejno): ustawiam odpowiednio rejestry CRA i CRB, przechodzę na "single-measurement...
Mam problem z tym układem... w głosniku słychać pisk i jakies "lekkie" przebicia dziwnych dzwięków pasujących do pliku jaki wrzucę na kartę. Transmisja z kartą jest poprawna, na oscyloskopie widać jak przesyłane są informacje. ustawiałem stałą wartość głośności, testowałem rózne pliki równiez ten umieszczony wczesniej w tym temacie na 100% sprawny,...
Witam wszystkich. Podczas dzisiejszej zabawy z Atmegą32a napotkałem 2 problemy. Jeden, to dziwnie działający UART: Przy takim kodzie: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define PWM_A (1<<PD4) #define PWM_B (1<<PD5) int a = 0; #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((8000000UL / (USART_BAUDRATE *...
Przepraszam za dwa posty pod rząd ale zdałem sobie sprawę z błędu mojego rozumowania. Przecież ustawiałem rezystory na zakres od 0 do 400 stopni więc dla rezystancji 100Ω będę miał odczyt z ADC równy 0 lub bliski temu (ze względu na niewielkie różnice w wartościach rezystorów). Głupie pytanie zadałem i przepraszam za to. Teraz mam jednak inny problem....
Witam. W pierwszej kolejności popraw posta i wklej kod za pomocą znaczników SYNTAX. [syntax=c] PORTA = 1; -> ustawiasz tutaj żeby załączyło pin 1 portu A. PORTC = a; //_delay_us(100); PORTA = 2; -> 2 w binarnym kodzie to 10 a więc wyłączasz pin 1, a włączasz tylko pin 2. Gdy użyjesz zamiast 2 tutaj 3 (w binarnym 11) to powinno załączyć prawidłowo. PORTB...
Witajcie elektrodowicze. Tym razem, celem artykułu będzie przedstawienie wam kolejnego taniutkiego i bardzo przydatnego programatora od naszych skośnookich braci. https://obrazki.elektroda.pl/5259236300_... Jest to, programator UBSASP, w wersji 2.0, przeznaczony to współpracy z produkowanymi przez Atmela układami AVR. Po zakupie otrzymujemy...
- albo ustawiasz pin OC1A w automatyczne zmienianie stanu na przeciwny przy porównaniu z OCR1A poprzez wykorzystanie COM1A1 i COM1A0. Tylko tutaj musisz DDR pinu OC1A ustawić jako wyjściowy ) Dokladnie o takie rozwiazanie mi chodzi. Faktycznie zapomnialem o TCCR1A= (1<<COM1A1). Obecny kod: #define CLK_LED PD5 .... [syntax=c] DDRD |= (1<<CLK_LED)...
Cóż, jestem lekko zaskoczony tą sytuacją z EEPROM, bo przygotowałem sobie plik, który wgrywa do pamięci same 0xFF. Pierwsze 225 komórek nie zostało zapisanych poprawnie (były tam śmieci). Następnie wgrywamy do pamięci 0x00 - tym razem zapis i weryfikacja poprawne. Potem wgrywam znów same 0xFF i tu największe zaskoczenie - tym razem cała pamięć ma wartość...
Witam mam problem z inicjacją komunikacji szeregowej. Potrzebuję ustanowić połączenie 9600, słowo: 8 bitów, parity: even, bit stop: 1 funkcją ustawiam jak niżej: https://obrazki.elektroda.pl/6090051300_... gdy ślę 0x01 otrzymuję: https://obrazki.elektroda.pl/7604043600_... Gdzie tkwi problem? Przy domyślnych ustawieniach...
Witam Najpierw niech kolega "na sucho" sprawdzi PWM manipulując zawartością OCR. Jeśli będzie ok to sprawdzić trzeba czy przypisanie na sztywno do zmiennej pomoc różnych wartości daje rezultaty. Jeśli wszytko będzie ok sprawdzić trzeba pomiar częstotliwości. Jak będę miał chwile to popatrzę na kod i jakiś schemat by się przydał może tam jest błąd ;]...
Nie wiem jakiego kompilatora asm używasz, to co przedstawiam, używam na AVRasm2, który obsługuje preprocesor C oraz mam wygenerowane pliki nagłówkowe C Atmela narzędziem xmlconvert.exe[syntax=c]#ifdef WDP3 #define WDP_2K 0 // ~16ms #define WDP_4K (1<<WDP0)// ~32ms #define WDP_8K (1<<WDP1) // ~64ms #define WDP_16K ((1<<WDP1)|(1<<WDP0))//...
Zmień mikrokontroler na taki, który ma timery o odpowiadających Ci parametrach. Układ dobiera się do założeń projektowych. Potrzebujesz timera, który będzie miał okres ok. 600 cykli przy 60 kHz, czyli częstotliwość zegara powinna wynosić nie mniej, niż 36 MHz. Prawdopodobnie dowolny uC z rdzeniem Cortex, zresztą pewnie tańszy od ATmega128, zapewni spełnienie...
Dowiedziałem się, że to tych rejestrów trzeba dostać się przy pomocy funkcji LDS/STS... Jak piszesz w C nie musisz się o takie rzeczy martwić. To zadanie kompilatora dobrać odpowiednią instrukcję. Przeszukałem forum i google ale są tylko przykłady dla assemblera, nic dla C. Na pewno są też dla C, ale podam jeszcze raz: // kasowanie bitu 5 (bit...
Masz żle skonfigurowane stk500 użyj programowania HVPP i wszystko będzie ok. Jeśli stk500 nie rozpoznaje sygnatury układu to nic nie zaprogramuje wyłączyłeś pewnie mozliwość programowania po isp bitem SPIEN , masz ustawioną za dużą szybkość magistrali spi , wyłączyłeś funkcję wyprowadzenia reset , lub wybrałeś zewnętrzny oscylator i nie podajesz sygnału...
Cześć, Mam zapytanie dotyczące przerwania IRQ w module radiowym nRF24L01+. Moduł pracuje jako nadajnik. Wykorzystuję w nim funkcję potwierdzenia odbioru. Pomyślne odebranie danych przez odbiornik powinno skutkować wystawieniem w nadajniku stanu niskiego na IRQ. Ten sygnał chcę podać na wejście przerwania mikrokontrolera ATmega32A. Niestety, nie zawsze...
Na 10 str. masz wyjaśnione jak coś zapisać do PCF'a. Przede wszystkim przy zapisie adres PCF'a ci się nie zgadza - bit0 musi być 0 a u ciebie jest 1. No i zapis bitowy zmiennej inaczej się w C oznacza.
Na jakiej podstawie twierdzisz, że problemem są priorytety przerwań? Przerwania występują na tyle sporadycznie, że nie ma tutaj miejsca na problemy. Jeśli wysyłany jest znak '2', to porównanie (i==2) jest błędne TCCR2 = 1<<CS00 | 1<<CS02 | 0<<CS01 ; proponuję zapisać tak: TCCR2 = (1<<CS00) | (1<<CS02) |...
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:...
Przykładowa funkcja powinna być poprawnie napisana. [code][syntax=c] //ptrRam - adres startowy do wysłania //NumOfBytes - liczba bajtów do wysłania void Debug_SendRam(unsigned char *ptrRam,unsigned int NumOfBytes) { insigned int i; for(i=0;i<=NumOfBytes;i++) { while ( !( UCSRA & (1<<UDRE)) ); //wysyłamy bajt przez UART UDR = *ptrRam; ptrRam++;...
Prawdopodobnie kod dla "silnik 5", przypadki 2, 3 i 4 sterują nie tym, czym powinny. Kod jest strasznie nieczytelny, a przez proste kopiowanie/wklejanie powstają później takie błędy jak ten. -- edit: nie powinieneś pobierać wartości z ADC po zakończeniu konwersji?
Zamiast SIGNAL użyj ISR(TIMER1_COMPA_vect) i tak poza tym to chyba powinno być SIGNAL( SIG_OUTPUT_COMPARE1A )
Tak. Po to właśnie jest nagłówek setbaud.h a funkcję go wykorzystującą już znasz i opisałem ją dokładnie w komentarzach. F_CPU ustawia się w opcjach: http://mikrokontrolery.blogspot.com/2011... W ten sposób setbaud.h będzie wiedział jaka jest częstotliwoć taktowania mirokontrolera, i funkcja usart_inicjuj() dobierze odpowiednie...
najbardziej podoba mi się to: kilkaset pierwszych bajtów jest dobrych... a reszta to kolejne liczby: 0x30,0x31,0x32 To znaczy że ewidentnie rozjeżdża ci się transmisja pomiędzy programatorem a uC. Gdyby się okazało że jednak te pierwsze bity są pierwszą częścią 0x30, 0x31 to jednak masz zablokowany uC przed odczytem. Stawiam jednak na zbyt niepewne...
I dlaczego trzeba ustawiać ten bit na 1, a nie na 0? Musiałbyś zerknąć na wewnętrzną budowę rejestru. To jest zapewne realizowane jako przerzutnik, a doprowadzenie "1" je zeruje. Ponadto to jest wygodne, masz rejestr, któy zawiera kilka flag, zerujesz tylko te dla których na odpowiednich pozycjach zapisywanego bajtu są "1", zera są ignorowane. Dzięki...
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
W takim razie procesor (raczej sprawny) ma inną konfiguracje zegara, może wewnętrzny, ale jeżeli jest tak jak napisałeś w pierwszym poscie (wszystkie CKSEL zaznaczone - wyzerowane) to na bank jest źródło zewnętrzne. nawet jak jest wybrany kwarc, to podanie zegara na XTAL1 daje rezultat(kiedyś miałem zkaszanionego procka, nie wzbudzał kwarcu, ale bral...
A jak mam wyłączyc w BASCOM JTAG http://www.elektroda.pl/rtvforum/topic14... Od razu uprzedzam - 10 razy sprawdź, zanim zaczniesz programować Fusebity. Możesz zablokować ATMEGA.
rozkazy IN/OUT działają tylko do $60 adresu. Zamiast OUT'a daj STS UCSR0C, r16
Sprawdziłem, jednak chodzi o DDRB, który jest adres przed PORTB w rejestrze, a ktoś zamiast pisać DDRB woli PORTB-1
#define WDP_16K 0 // ~16ms #define WDP_32K (1<<WDP0) // ~32ms #define WDP_64K (1<<WDP1) // ~64ms #define WDP_128K ((1<<WDP1)|(1<&... // ~0,13s #define WDP_256K(1<<WDP2) // ~0,26s #define WDP_512K((1<<WDP2)| (1<<WDP0)) // ~0,5s #define...
Zaczytaj sobie w nocie aplikacyjnej PDF procka na temat : SPI Serial Programming Pin Mapping zobaczysz tam, że sygnały programatora ISP (STK200) MOSI i MISO podłącza się do całkiem innych pinów niż ci się wydaje, i okaże się, że procek się nie przegrzał od lutownicy ;) a poza tym, okaże też się tobie, że procek z fabryki jednak wyszedł ustawieniem na...
1. Zwiększ parametry hwstack, swstack, framesize 2. uprość ten program do testów. Ogólnie metodyka testów wygląda tak, że jak coś Ci nie działa to zostawiasz w programie TYLKO kod odpowiedzialny za tę właśnie rzecz i dopiero po jej uruchomieniu dopisujesz (przywracasz) resztę.
Tak, dokladnie. Pozdro Dexter
na atmedze i tak typ double jest równy typowi float. Zmienne x i kat powinny być zadeklarowane jako volatile. aha no i często warunki typu if(zmienna == 43.342) zwracają fałsz, nawet jak wpiszesz zmienna = 43.543; if(zmienna == 43.543) {cos} to "cos" się może nie wykonać, bezpieczniej jest tam dać znak nierówności if(zmienna...
Czy pin RESET jest podciągnięty do Vcc??
No fabrycznie nowa Mega128 wychodzi z zegarem 1MHz. Jeśli masz taką nową to przy przestawianiu na 8MHz nie zapomnij wyłączyć JTAG i koniecznie wyłącz bit M103C bo to jest bit który ją "cofa w rozwoju" ahahaha czyli robi kompatybilną ze starszą Atmegą103 i tam jest kilka zmian w rejestrach i sprzęcie przez co program na pewno dobrze działać nie będzie...
Proponuje jak zwykle dokumentację - rejestr SPCR.
... zgodnie z dokumentacja do Atmegi328 Tabela 15-5 mówi że wyzerowanie bitów CS12:0 powoduje zatrzymanie Timera. Rozumiem że to nie wystarcza w moim przypadku. Wystarczy, ale nie zerujesz bitów CS12:0 tym fragmentem programu. Podstawy C: http://mikrokontrolery.blogspot.com/2011...
Problem rozwiązany, nie siedział on w funkcji uruchamiającej LCD, a w funkcji ustawiającej adres. Dostosowałem sobie gotowca z innej strony [url=https://github.com/gpittarelli/avr-... i działa.
Datasheet strona 174 Table. 74
Jaki programator? Pod jakie piny masz podpięty programator? The MOSI/MISO pins that are mapped to PB2 and PB3 in the SPI I/O module are not used in the Programming interface. Instead, PE0 and PE1 are used for data in SPI Programming mode
W takim wypadku nie potrzebujesz wcale żadnego BootLoadera, tylko chcesz zapisywać dane we Flash'u tak jak w zwykłym EEPROMIE. W sumie to prawda, ale aby móc zapisywać coś do flasha to muszę wykonać instrukcję spm, której wywołanie jest dozwolone tylko z obszaru NRWW (tam, gdzie bootloader). No i tu jest lekarstwo na Twoje bolączki. Jedna jedyna funkcja...
W układzie jest tylko jedna dioda czy pod każdym klawiszem? Dorzuć schemat podłączenia do procesora. [syntax=c] WIE^=0b11111111; KOL^=0b11111111; [/syntax] Defakto robisz coś takiego. [syntax=c] DDRD^=0b11111111; PORTD^=0b11111111; [/syntax] Możesz wytłumaczyć tą kombinację, po co zmieniasz ustawiania portu? Raz cała brama jest wejściem drugi raz cąła...
Jak chcesz żeby ktoś ci pomógł to nie bierz punktów za PDFa. Wpisujesz w Google MBI5025 i pierwszy wynik to nota: [url=http://www.prom-electro.ru/document... Na 4 stronie jest tabelka, już prościej się nie da tego przedstawić. OE-uaktywnia wyjścia LE-zatrzaskuje stany wyjść CLK- zegar danych W momentach przejścia CLK z stanu niskiego w...
O co chodzi? Moje Arduino to chiński klon Po prostu Twój klon ma najprawdopodobniej inny wariant procesora ATmega328 niż oryginalny włoski UNO. Nie jest to jakiś kłopot na co dzień, bo praktycznie kostki są takie same w działaniu (różnice są np. w poborze prądu i innych drobnych szczegółach) ale przy wgrywaniu bezpośrednio do kostki USBaspem sprawdzana...
Przypuszczam, że ta sekwencja jest błędna: [syntax=c] pinMode(relay1_up, OUTPUT); pinMode(relay2_up, OUTPUT); pinMode(relay1_down, OUTPUT); pinMode(relay2_down, OUTPUT); pinMode(switchUp, INPUT_PULLUP); pinMode(switchDown, INPUT_PULLUP); pinMode(sensor1, INPUT); pinMode(sensor2, INPUT); pinMode(relay1_up, LOW); pinMode(relay2_up, LOW); pinMode(relay1_down,...
...Na tym procku sprzętowo to w zasadzie nie uzyskasz innych czestotliwości PWM jak kombinacja preskalera i częstotliwości zegara systemowego, ale zawsze możesz wyregulować prędkość tego drugiego poprzez zmianę bitów kalibracyjnych... Niestety , ale nie mogę się zgodzić z powyższym twierdzeniem. Proszę zajrzeć do PDF-ka ATmega32 na str.107 i przyjrzeć...
Witam. Mam problem ... .. bo nie chce mi się zajrzec do helpa ... ;) ldi R17, PINB ... To powyżej oznacza LDI R17,0x16(adres PINB). a)Musisz odróżnic dane bezpośrednie , od pośrednich bo inaczej klapa ;) b)Do odczytów rejestrów I/O uzywa się IN REG,IO lub LDS REG,IO :idea: Piotrek
a co z przerwaniem porównania kanału B?
Kolego Bitstop nie znam się zbytnio na tych ustawieniach podpowiedz jak ustawia się ten BOD na 4,3V.
Ogólnie na Hantek który jest przystawką do komputera ma ograniczenie na napięcie wejściowe do +/- 35V (http://www.gotronik.pl/hantek6074bc-osc... Co oznacza, że jeśli masz sondę która wytrzymuje 2000V ale jeśli jest to sonda 10x (dzielnik 1:10) to niestety na oscyloskopie zmierzysz max 350V Vpp, a przypominam że napięcie...
Tam także zmieniałem , efekt taki sam , ustawiałem strefy i jedyne co mi się uzyskało osiągnąć to przeunięcie albo w lewo albo w prawo
Ja znalazłem rozwiązanie swojego problemu. Programator jest porządku, wszystko gra wyśmienicie. Powodem błędów i dziwnych zachowań był uszkodzony procek m328p.
A w wyniku jego działania dioda powinna na początek się na 1s zaświecić, a następnie na 1s zgasnąć. Jest na odwrót, to znaczy na początku przez 1sekunde jest wygaszona a następnie dopiero na sekundę się zapala. Może w tym szukać problemu? To dlatego, że masz odwrotnie (czyt. błędnie) zdefiniowane LED_ON i LED_OFF. Jeżeli zacznę pocierać spód wyświetlacza...
To może zacznij od wyszukania analogii w swoim kodzie. Na pierwszy rzut oka ciągle powtarza się zapis/odczyt rejestru układu. Wydziel to do oddzielnej funkcji. Co chwilę odmierzasz timeout transferu TWI. To również można wydzielić do tych funkcji. Na chwilę obecną trudno zrozumieć flow Twojego programu bo co chwilę powtarza się sekwencja zapisu/odczytu...
HA !!! ustawiłem rezonator zewnetrzny 8MHz - to już sukces :) ale co zrobić z LCD podłączonym do portu C? Czy mogę bezpiecznie wyłączyć JTAG'a ?
bity mam ustawione tak jak widać, a przerwanie przychodzi tylko raz w debuggerze- dzięki ustawionemu bitowi ADSC. Tak napisałem w pierwszym poście. Pisałem o debuggerze. Tak swoją drogą uważam, że po to jest debugger. Żeby sprawdzić czy wszystko działa tak jak planowaliśmy. Nie stosuje debuggera tylko do wyszukiwania błędów krytycznych- widocznych...
DDRA = 0x00; - zbędne, i tak jest już tam zero DDRB |= (1<<EN5V); - po co to |= ? DDRC = 0x00; - zbędne, jw. DDRD = 0x00; - zbędne, jw. PORTA |= 0xff; - włącza podciąganie wewnętrznymi rezystorami ok. 50 k do plusa zasilania, tak samo jak PORTA = 0xff ale wolniej - czy na pewno o to chodziło? PORTB |= 0xff; - jw., ustawia jedną linię w stan 1...
Zastanów się co będzie w rejestrze TIMSK po wykonaniu tych dwóch linii Twojego programu: [syntax=c]TIMSK = (1<<TOIE0); //przerwanie na przepełnienie ... TIMSK = (1<<TOIE1); //przerwanie na przepełnienie [/syntax] Nie definiuj F_CPU w kodzie z tych powodów: http://mikrokontrolery.blogspot.com/2011...
heh :) bo to nie przerwanie ustawia flagi, tylko wręcz przeciwnie.
By ustawić uC do pracy w Arduino trzeba wgrać bootloader. Wgranie bootloadera to nie tylko wgranie programu, ale przede wszystkim ustawienie fuse bitów. Tak że jeśli to zrobiłeś, to masz je ustawione tak jak skonfigurowałeś w menu. Jeśli coś w menu zmieniasz, to wgrywasz na nowo bootloader co przy okazji ustawia fuse bity.
Troszkę nie rozumiem tego sformułowania na początku, chodzi o zasilacz na akumulatorze? Raczej chodzi o awaryjne podtrzymanie pracy zegara w przypadku przerwy w dostawie napięcia sieciowego 230V. Ustawienia zegara się wówczas skasują i trzeba go ustawiać od nowa. W przypadku zasilania awaryjnego zegar pracuje na zasilaniu z akumulatorków. Wskazane...
Jeżeli dobrze zrozumiałem to ma to wyglądać tak: ISR(TIMER2_OVF_vect){ //LED_PORT |=(1<<7); //if (count > val[0]) {LED_PORT &=~(1<<0);} else {LED_PORT |= (1<<0);} //if (count > val[1]) {LED_PORT &=~(1<<1);}...
Walkowane 100 razy. Kondensatory pomiedzy VCC i GND oraz AVCC i GND. Czy musisz stosowac dlawik, nie musisz ale im chcesz miec lepsze wyniki tym lepiej musisz uklad zaprojektowac. Pamietaj ze nie mozesz podlaczac napiecia do Vref jesli chcesz korzystac z wewnetrznego.
A to wszystko oczywiście gdzie? W manualu i tutorialach:>
tak tylko ze niema opcji dla kwarcu 11.547 i stad moje pytanie
Witam, Czy mozliwe ze takie ustawienia popsuły mi ATmege? :P http://obrazki.elektroda.pl/8337825900_1... http://obrazki.elektroda.pl/3681479300_1... Troche poklikalem a chcialem tylko JTAGa wylaczyc.. i teraz system nie widzi urządzenia
Dokumentacje wertowałem dłużej niż godzinę, niestety moja wiedza na temat avr jest znikoma, poza tym ta biblioteka nie jest moja i nie wiem co gdzie ma być ustawiane (oprócz tego co jest w komentarzach). Tymi rejestrami interesowałem się, niestety bez skutku. Spróbuję jeszcze raz. Edit: Następna godzina grzebania w dokumentacji i udało się. Dla potomnych...
Bity RS1 i RS2 w rejestrze control 0x0E zerujesz a bit INTCN ustawiasz i masz 1Hz na wyjściu.
Czyli do OCR0 moge wpisać max 0xFF?? W ATmega32 preskaler jest 10 bitowy ale jak to się ma do ustawiania częstotliwości? Jeżeli clk =16MHz a program wyżej (chyba) ustawial clk/64 czyli 250kHz. Tzn że to jest najmniejsza do osiągnięcia częstotliwość na tym ustawieniu? Gdzie w tym wszystkim rola preskalera?
Witam, Zabawę z programowaniem oraz urządzeniami zacząłem od niedawna. Jednak mam nietypowy problem. A więc... Ustawiam o tak: //Tryb parzystości UCSR0C |= (1 << UPM00); UCSR0C |= (1 << UPM01); i niech mi ktoś powie, czemu ta kombinacja - prócz do wpisania do rejestru UCSR0C stanu logicznego 1 w odpowiednie miejsca, zmienia mi wartości także...
Witam. otóż tworzę prosty generator na ATmega32 i 8-bitowym przetworniku C/A. Niestety nie potrafię regulować częstotliwości pracy. Nie wiem jak to zrobić. Większość przykładów znalazłem w Asemblerze a ja piszę w C. Chodzi o to że posiadam tablicę z zapisanymi próbkami. I częstotliwość jaką potrafię uzyskać to (fzeg/(2^8))*aku. Nie wiem jak ją zmniejszyć....
Skorzystałem z AVRDUDESS, aby wyłączyć JTAGA. Program wykrywał procesor bez problemu. Skorzystałem ze stronki http://www.engbedded.com/fusecalc/ aby wyznaczyć fuse bity do wyłączenia JTAGA. Low: 0xF0 High: 0xD9. W programie wpisałem te dane jako L i H, zaznaczyłem Set Fuses i dałem polecenie Write. Próba sprawdzenia mikrokontrolera spaliła już na panewce,...
W poniższym linku masz odpowiedź na swoje pytanie: http://www.atmel.com/dyn/resources/prod_...
Nie potrzeba 100 linijek. Ja zazwyczaj robię to tak iż jeszcze nie zdarzyło mi się nie użyć timera. Jak by nie robić to jego użycie zawsze ułatwia cały program. W timerze sprawdzam stan klawiatury i ustawiam odpowiednią flagę. W kolejnym zgłoszonym przerwaniu z timera powtórnie sprawdzam klawiaturę i jeśli to ten sam klawisz i ustawiona jest flaga to...
Czy konieczne jest ustawienie jakiś fusebitów przy obsłudze USART w atmedze 32?[/quote]
Wielkie dzięki zrobiłem tak jak pisałeś i pomogło Atmega przyjęła szybki programik na mruganie diodą, niestety mkAVRkalkulator dalej jej nie widzi (wygodnie w nim ustawiało się fusebity) no ale nic są też inne sposoby. przerobiony plik wrzucam w załączniku może komuś się przyda.
Chcę się tylko upewnić czy wszystko jest ok. Atmega32, 16mhz zewnętrzny, wyłączony Jtag http://skalar.mcten.pl/images/stories/sk... CKSEL1,2,3 111 'rezonator zewnętrzny 16Mhz CKSEL0 1 SUT 11 'powolne narastanie napięcia Czy zmiana SUT coś zmienia, podłączam zasilanie, nie narasta raczej powoli, czy może być to tak ustawione? Jtag...
1. Bootloader nie zmienia fusebitów, nawet nie ma takiej możliwości. Fusebity ustawia się przed wgraniem wsadu (na ogół) 2. Lockbity jest sens ustawiać tylko i wyłącznie wtedy, gdy układ trafia do klienta i nie chcesz, aby podejrzał Twój program wgrywany szyfrowanym bootloaderem.
Ja zwykle ustawiam dla F_CPU=11059200 : CKSEL=1111 SUT=10 CKOPT=0
W nocie katalogowej masz opisany sposób uruchamiania T2 w trybie asynchronicznym - w podrozdziale do T2.
Bardzo mie smuci, że nie da się wykonać takiego pomiaru na atmedze. Pokombinuj troszkę: http://obrazki.elektroda.pl/4233799000_1... Załóżmy że: - Twoje sygnały zawierają się w przedziale 0-3V (blisko 0V = brak sygnału, blisko 3V to wystąpienie sygnału. - zadbasz, by sygnały były wolne od składowych częstotliwości dźwięku, czyli były...
Witam. Panowie chciałbym zapytać o ustawienie fusebitu CKOPT w baskomie. Chciałem przejść w atmega32A-PU z wewnętrznego kwarcu 1 Mhz n a zewnętrzny 10Mhz ,tylko mam jeden problem. Wiem że fusebit A987-z ustawienia 0001 muszę zmienić na pozycję : 15 w bascomie czyli 1110 ext. crystal/resonator hight freq. lub 16 w bascomie czyli 1111 ext. crystal/resonator...
Witam, od wczoraj próbuje ogarnąć przerwania zewnętrzne w Atmedze128. Sporo o tym czytałem zarówno na forum jak i w dokumentacji ale prawdopodobnie jeszcze coś przeoczyłem bo nie działa. Kod na maxa uprościłem, żeby sprecyzować problem. [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include "delay.h" #include...
Nie ukrywam, że jestem początkujący w programowaniu uC. Każdej rady z uwagą wysłucham i dziękuję za odpowiedź. Odnośnie punktu 1 to rzeczywiście logika nakazuje najpierw skonfigurować, potem włączyć. Jednak procedura inicjalizacji SPI, którą zamieściłem jest identyczna jak przykład z dokumentacji ATmegi128. Wydaje mi się, że w trybie SPI urządzenie...
Witam serdecznie, Mam pytanie odnośnie obsługi modułu z ENC28j60 w C za pomocą Atmegi 32. Opieram swój projekt na kodach z tego artykułu: [syntax=c]# makefile, written by guido socher MCU=atmega168 DUDECPUTYPE=m168 #MCU=atmega88 #DUDECPUTYPE=m88 #MCU=atmega328p #DUDECPUTYPE=m328 # LOADCMD=avrdude LOADARG=-p $(DUDECPUTYPE) -c stk500v2...
Jednak mam z nim pewne problemy i zastanawaim się czy może to być związane z ustawieniami bitów. Możesz jaśniej? Wróżki pod innym adresem...
ustawianie wycieraczek ustawianie radiostacji ustawianie krzywej
wzbudzanie mikrofonu ustawić zaworów ursus wykrywacz złota
instrukcja ostrówek kominek drzwi
Zmywarka Hoover błąd 06 - przyczyny i rozwiązania Myjka ciśnieniowa wyłącza się po uruchomieniu dopływu wody