Ten kurs jest już trochę przedatowany - typów prog_cośtam już nie powinno się używać. Ale generalnie mniej więcej o to chodzi, tu masz help: http://www.nongnu.org/avr-libc/user-manu...
No to jeszcze dwie uwagi dot: F_CPU: http://mikrokontrolery.blogspot.com/2011... SIGNAL, bo przestarzałe - używaj ISR i nowych wektorów: http://www.nongnu.org/avr-libc/user-manu...
http://www.nongnu.org/avr-libc/user-manu... O to chodzilo ?
..w CV dostep do bitow w rejestrze masz postaci REJESTR.NRBITU np TIMSK.4=0 wszyskto masz w helpie i manualu pzdr.
Trzeba tak dobrać wartość preskalera, żeby częstotliwość dla przetwornika była nie wyższa niż 200kHz, chyba, że chce się korzystać z przetwornika z 8 bitową rozdzielczością bo i taką możliwość dają AVRy. Stoi to jak byk w manualu.
[url=http://www.nongnu.org/avr-libc/user... trochę
Zapis i odczyt z eepromu jest opisany w dokumentacji gcc Nie GCC tylko AVR-libc ;) [url=http://www.nongnu.org/avr-libc/user...
To prawda, w M8 pewnie tego nie pomieścisz. Ale najogólniej jeśli jest wolny FLASH to da się to prosto zrobić. Trzeba plik wav zamienić na obj narzędziem objcopy i potem otrzymany plik obj po prostu zlinkować z resztą programu. Szczegóły znajdziesz w manualu do objcopy.
Polecam lekturę "SIM300 AT command manual"
Manual do ATmega8 strona 234 na dole. Stoi tam wszystko jak byk.
Trzeba mieć nóż aby ją przeciąć albo zwinne palce, żeby rozplątać. użyj słowa kluczowego break; I poczytaj jakąś książkę/manual od biedy tutorial do C
Wg http://www.nongnu.org/avr-libc/user-manu... musisz zmienić nazwę wektora przerwań na TIM0_OVF_vect Porównaj sobie datasheet attiny13 z datasheetem atmegi8 żeby skonfigurować timery. Do skonfigurowania timera w attiny służą rejestry TCCR0A i TCCR0B, w atmedze8 jest tylko TCCR0 http://www.atmel.com/images/doc2535.pdf http://www.atmel.com/Images/Atmel-2486-8...
Klasa TwoWire (której obiektem jest Wire) też używa przerwań. Po wejściu do ISR przerwania są blokowane. Jeżeli chcesz, aby dane ISR nie blokowało innych przerwań można użyć ISR_NOBLOCK:[syntax=c]ISR(TIMER2_OVF_vec... ISR_NOBLOCK) { ... }[/syntax]Byłbym jednak z tym bardzo ostrożny, ponieważ może przydarzyć się przepełnienie stosu. https://www.nongnu.org/avr-libc/user-man...
http://www.nongnu.org/avr-libc/user-manu...
tmf miał na myśli to: http://www.nongnu.org/avr-libc/user-manu...
Stosuj ISR według: http://www.nongnu.org/avr-libc/user-manu...
W xmedze jest inteligentniejszy i jak zapiszesz adres to start jest generowany automatycznie o ile pamiętam bo megi dawno nie programowaem. Dodano po 58 masz to zresztą dokladnie opisane w manualu
ok...to jeszcze jedno pytanie: ten fragment kodu: PORTB = (1<<PB1)|(1<<PB0... ustawia pull-up'y ?? czyli tak jakby "podciąga" porty PB0 i PB1 rezystorami do Vcc ... zagadza sie ?? a ten fragment kodu: DDRB = (1<<DDB1)|(1<<DD... ustawia porty PB0 i PB1 jako INPUT ?? (... bo wcześniej o tym nie napisałeś...
http://www.nongnu.org/avr-libc/user-manu...
Nie wiem jaki masz programator (piszesz tylko że usb), ale jeśli to USBASP to Bascom w wersji 1.11.9.5 nie obsługuje go bezpośrednio. Trzeba korzystać z pośrednictwa AvrDude. W tym przypadku okno Manual Program jest niedostępne. Napisz jaki to programator i jak go ustawiasz w opcjach.
Drobna uwaga do Twojego kodu. Nie stosuj starej obsługi przerwań SIGNAL(), tylko nową ISR() z nowymi wektorami: http://www.nongnu.org/avr-libc/user-manu...
Oczywiście same programy, które będziesz kompilował i wgrywał też muszą być w opcji z częstotliwością kwarcu 14.7456 MHz. https://obrazki.elektroda.pl/4452214300_... MiniCore lepiej zainstalować w trybie "Manual". Jak użyjesz Menedżera Płytek w Arduino IDE, to uparcie instaluje się starsza wersja MiniCore, bez wsparcia dla tej częstotliwości...
BlueDraco gdzie jest coś na temat tych diod technologiczych [url=http://www.atmel.com/Images/Atmel-2... manualu ? Coś nie mogę namierzyć informacji o nich (strasznie długi ten manual) dondu - wytłumacz mi jeszcze czemu transil na 40V a nie 5V ?, też będzie coś zaburzał ?
Nadal wyskakuje ostrzeżenie: ../SPIprogramowo.c:61: warning: implicit declaration of function 'utoa' Na wyświetlaczu ukazuje się napis buf. Nie znam dokładnie jak działa ta funkcja utoa, i nie wiem czy jest dobrze. Dodaj nagłówek stdlib.h: http://www.nongnu.org/avr-libc/user-manu...
Na stronie 219(notka 4) stoi jak wół napisane: że jeżeli zaprogramowano RSTDISBL to aby go programować dalej lub ustawiać fusy trzeba użyć trybu równoległego. W trybie równoległym zawsze się urzywa 12V. Dodatkowo na stronie 223 też jest napisane: że jeżeli ustawiono rstdisbl to wymagana jest specjalna procedura - najpierw trzeba przywrócić pin do stanu...
No jasne, jak Ci nie podam strony w manualu, to kłamię? Fajne inżynierskie podejście. Poczytaj sobie o rejestrze IRQLATENCY w serii LPC11xx, np. w modelu LPC1124. Potem możesz grzecznie przeprosić za insynuacje.
Mysle ze to pewnie nie przez to, ale przeczytalem w manualu aby nie zmieniac rejestrow w taki sposob "TCCR1B|=' tylko nadpisywac zawsze wartoscia 'TCCR1B=..."? Zmien moze nazwe makr wywolujaca przerwanie bo sie zmienily, tutaj masz nazwy stare/nowe: http://www.nongnu.org/avr-libc/user-manu...
Rejestr to właśnie DDRB (manual sekcja I/O Ports tabela 20)
Tamto stare... jeszcze signal.h opisywany... http://www.nongnu.org/avr-libc/user-manu... Tutaj lepiej i aktualniej:)
http://www.tkdami.net/~voytek/programy/p... znajdziesz tu info o tym jak ustawiac fuse bity reszte informacji co do kofiguracji szukaj w manualu do procka
NAJPIERW PRZECZYTAĆ A PÓŻNIEJ ROBIĆ - NIE ODWROTNIE. Aby dokonać zmiany ustawienia kwarcu z wewnętrznego RC 1 MHz na zewnętrzny ( np.8MHz). Trzeba przejść do programowania ręcznego procesora MANUAL PROGRAM i wybrać zakładkę LOCK AND FUSE BITS. UWAGA w razie pomyłki można nie odpalić procesora!!! ATmega8 CKSEL[3..0] - Fusebits opcję Fusebit A987 - 0001:Internal...
Zerknij tu i przemyśl : http://www.nongnu.org/avr-libc/user-manu...
Witaj. Na początek uporządkuj sprawy dot. trybu usypiania, ponieważ wykonujesz niepotrzebnie w pętli głównej część czynności w tym zakresie. Poza tym skoro już używasz nagłówka sleep.h, to używaj go w pełni, a nie osobno ustawiasz np. [syntax=c]MCUCR |=(1<<SE)|(1<<SM1);[/syntax] Zobacz przykład funkcji main tutaj: [syntax=c]int main(void)...
TIM0_OVF_vect nie jest dla megi8, powinno być TIMER0_OVF_vect. INT1_vect jest ok. Źródło: http://www.nongnu.org/avr-libc/user-manu...
Problem w tym, że nie mam zielonego pojęcia co to fusebity Czyli de facto Twój problem polega na tym, że potrzebujesz mobilizacji do przeczytania noty katalogowej (Sekcja "Memory Programming" i "System Clock and Clock Options")... ;) http://www.atmel.com/devices/ATMEGA8535.... Fusebity avrdude ustawi również, wystarczy poczytać manuala.
Spróbuj podać procesor jak tutaj: https://www.nongnu.org/avrdude/user-manu... m328p
Pełna lista wektorów przerwań dla SIGNAL znajduje się oczywiście w dokumentacji... \WinAVR\doc\avr-libc\avr-libc-user-manua...
Co do czekania to oczywiście po convert powinieneś te 750ms odczekać (ale to wartość przybliżona, bo przecież ten termometr nie jest taktowany kwarcem), więc może okazać się za krótka. Można zrobić pooling i sprawdzać kiedy konwersja jest gotowa. Można też to całe czekanie olać - wtedy dopóki konwersja trwa odczytujesz poprzednią wartość. Co dla ciebie...
Ja uważam, że lib dla dht11 operujący na floatach z założenia nie może być dobry, więc radziły bym Ci znaleźć jakiegoś lepszego (sprawdzony przeze mnie w załączniku do tego: https://www.elektroda.pl/rtvforum/topic3... Jeśli jednak koniecznie upierasz się przy tym to w Eclipse z pluginem AVR trzeba wejść w Project/Properties/C/C++ Build/Settings...
Oczywiście... instrukcji bit_is_clear oraz bit_is_set są makrami zdefiniowane w bibliotece avrlibc służącymi do spawdania stanu odpwiednie bitu a porcie. Są jeszcze instrukcje: loop_until_bit_is_clear oraz loop_until_bit_is_set wstrzymujące działanie programu (wprowadzają pętlę) odpowiednio jeśli dany bit w porcie jest skasowany lub ustawiony. Częściowo...
Poczytaj o [url=http://www.nongnu.org/avr-libc/user...
Na początek mniej istotna dla Ciebie uwaga, ale przydatna. Używaj nowych wektorów przerwań i funkcji ISR() zamiast SIGNAL(). http://www.nongnu.org/avr-libc/user-manu... Kodu jeszcze nie analizowałem.
Hyperterminal działa według strony kodowej DOS czyli 852. Może sprawdź to? Dopóki wchodzą w grę tylko podstawowe znaki alfabetu łacińskiego oraz znaki interpunkcyjne i cyfry, to strona kodowa nie ma znaczenia. Gdy połącze moduł BT z uC(kablem szeregowym) to teoretycznie program powinien też działać, ale nie działa. Póki co i tak nic nie wysyłasz do...
Nie używam LCD tylko LED. a to?: LCD 7-SEG? LCD 7 segmentowe także istnieją więc wprowadzasz nas w błąd :) Nie używam LCD ... Funkcje rodziny printf nie służą do LCD tylko do formatowania danych do wyświetlenia. Czy tak sformatowane dane wykorzystasz do wyświetlenia na LCD, LED, OLED, czy ekranie monitora, nie ma to znaczenia. Przeanalizuj wskazane...
W avr-libc są makra do operacji atomowych: #include <util/atomic.h> ATOMIC_BLOCK(ATOMIC_RESTORESTATE)... { /* zrób coś */ } [url=http://www.nongnu.org/avr-libc/user... Pozdrawiam, Dr.Vee
Pokwapiłem się przetłumaczyć fragment ze strony 65 manuala ATMEGA8 dotyczący przerwań na pinie INT0. Wygląda on następoująco: • Bit 6 – INT0: External Interrupt Request 0 Enable When the INT0 bit is set (one) and the I-bit in the Status Register (SREG) is set (one), the external pin interrupt is enabled. The Interrupt Sense Control0 bits...
Jakbyś poczytał dokumentację tej metody, albo przeszukał forum, to byś się dowiedział, że te funkcje przyjmują tylko stałe i wymagają włączonej optymalizacji. Więcej można poczytać [url=http://www.nongnu.org/avr-libc/user...
Ale IMHO najsensowniejsza (szczególnie w połączeniu z oryginalnymi narzędziami supportowanymi przez AS) to skorzystanie a AVR-libc i ustawianie fusów na poziomie kodu w C. Dzięki temu nie trzeba pamiętać z jakimi fusami należy zaprogramować procesor bo wszystko jest razem. http://www.nongnu.org/avr-libc/user-manu...
oraz jeszcze: 1. stosujesz stare funkcje obsługi przerwań a nowe wektory - stosuj nowe funkcje ISR(): http://nongnu.org/avr-libc/user-manual/g... i wywal nagłówek #include <avr/signal.h> 2. returny w funkcjach ISR() i main() są zbędne. 3. Ostatnia uwaga kol Zaquadnik jest baaaardzo istotna. Nie dość, że czekasz w funkcji...
Piszac o ekonomi mialem na mysli to drugie rozwiazanie z encoderem i uP. Jezeli jest to Pot. to oczywiscie nie zaszkodzi poprobowac, Przy odrobinie uwagi mozna wmontowac 'bebechy' nowego potencjometru w stara obudowe TPS, a nawet uzupelnic calosc w styki do Idle i WOT. Wydaje mi sie ze przy minimalnym polozeniu przepustnicy mamy tez do czynienia z...
atom1477 no bardzo prawdopodobne bo podłączyłem inną atmege zasilając tylko VCC i na AVCC było właśnie około 4,4V. W układzie z rolet, przy takim samym zasilaniu na AVCC jest 0V. Oj kolego, podstawy: http://mikrokontrolery.blogspot.com/2011... Częstotliwość duża to nie jest, choć w tym projekcie spokojnie wystarczyło...
no własnie, zapisując inne wartości do OCR2 zmieniają się parametry generatora, ale nie jakiś zrozumiały dla mnie sposób. rozumiem ze musiałbym wpisać wartości do TCCR2 binarnie 10011101? w manualu atmegi zaczyna sie od bit7
A potrafi ktoś obsługiwać ten timer2? Kolega wyżej objaśnił ci to dostatecznie w twoim ojczystym języku. Jeżeli masz z tym trudności to może to będzie pomocne: [code][syntax=basic4gl] ' Must use the internal RC oscillator at 8MHz or at 1MHz because ' a 32.768 kHz watch crystal must be connected between the TOSC1 and TOSC2 pins. ' $regfile = "m8def.dat"...
Sorry za OT ale chyba nie wszyscy z was umieja czytac ale gdy po pierwszym resecie nie zadziała to się wiesza na dobre i nawet ręczny reset nie działa tylko odpięcie zasilania pomaga. Jak to sie ma do waszych wszystkich dywagacji ? Z drugiej strony sam przeszukalem manual do Atmega8 i nie potrafie odpowiedziec na to pytanie takze chetnie sie dowiem...
Pytanie jest trochę źle sformułowane, ponieważ typ mikrokontrolera ma tu drugorzędne znaczenie. Najważniejszy jest kompilator. W przypadku avr-gcc odpowiedź jest [url=http://www.nongnu.org/avr-libc/user...
Witam! Mam pewien problem z ustawieniem ilości danych w ramce danych. W manualu do ATmega8 jest pewna tabelka, która uzależnia ilość danych w ramce od konfiguracji trzech bitów: UCSZ0 UCSZ1 UCSZ2 znajdujących się w rejestrze UCSRC ([url=http://www.atmel.com/dyn/resources... tutaj strona 157). Okazuje się, że aby mieć w ramce...
A nie jest czasem tak, że tablice stringów muszą być inaczej deklarowane, żeby siedziały w PROGMEMie? Chodzi o sekcje "Storing and Retrieving Strings in the Program Space" w http://www.nongnu.org/avr-libc/user-manu...
programie Winavr WINAVR to nie program, tylko zestaw narzędzi ("toolchain"). Zresztą już przestarzały. Odpowiedż: http://www.nongnu.org/avr-libc/user-manu... Więcej -> Google.
to ja podpowiem ;) przerwanie można wyzwalać zboczem narastającym jak również opadającym[sposób wyzwalania można zmienić w dowolnym miejscu programu]. słyszałeś może o czymś takim jak timer sprzętowy[atmega8 ma takie 3]. polecam poczytać datasheeta[dokumentację] oraz http://avr.elektroda.eu/?q=node/8 http://www.nongnu.org/avr-libc/user-manu...
A jaka jest konfiguracja stdin i stdout? Jaki kompilator? Jaka biblioteka standardowa? Jeśli avr-gcc i avr-libc, to poczytaj: http://www.nongnu.org/avr-libc/user-manu... Pozdrawiam, Dr.Vee
masz podane jak na dłoni ... o co wiecej chodzi ?? zacznij czytać manual i zapoznaj sie z podstawami Bascoma:!:
http://www.nongnu.org/avr-libc/user-manu... poczytaj sobie, chyba że Cię to nie obchodzi, bo w końcu działa. ale może ktoś skorzysta:P
Dzisiaj ruszyło. Mogę ci jakoś dokładniej to opisać, ale teraz na szybko: zrobiłem dokładnie tak jak w manualu. Clock mam ok 10kHz, czyli raczej wolny. Głównym błędem jaki robiłem,to wywoływanie komendy SOFT_RST, a potem w niedalekim odstępie ADC_CVT i READ_PT. Po usunięciu SOFT_RST wszystko zaczęło chodzić. Chyba nie zachowałem odpowiedniego czasu...
ewentualnie PWM i tranzystor ... wtedy mozna procesorem płynnie zmieniać jasność podświetlania CONFIG TIMER1 CONFIG TIMER2 tym sie chyba to w bascomie ostawiało ... poczytaj w manualu
(...) .db "Jakis napis",0x0a,0x0d, 13,12, 0 lpm acc, z (lub z+) A co to za potworki? Znak końca linii (i do tego windowsowy :/) też nie jest potrzebny, wystarczy samo zero, chyba że urządzenie komunikuje się z windowsowym terminalem tekstowym przez rs-232. I skąd się wziął akumulator w AVR? W C robisz tak (avr-gcc): #include <avr/pgmspace.h>...
Masz zły wektor przerwań. http://www.atmel.com/images/atmel-2486-8... http://www.nongnu.org/avr-libc/user-manu... Ustawiłeś przerwanie od overflow timera. TCCR0 nie ma bitu WGM01. Zajrzyj do manuala jak to poustawiać.
Witam Na moje oko to wyrzuć te IRFZ44 bo się do tego nie nadają, jak widać na schemacie to są podpięte prosto pod procesor, a manual mówi że Ugs dla tego tranzystora i sensownego prądu to 10V i to by było na tyle. Piotr
Każdy rodzaj procesora ma swoja sygnaturę, która jest unikalna. Spróbuj uruchomić Manual Program i sprawdź jaki procesor jest wykrywany.
_delay_ms(0.89); przyjmuje tylko liczby całkowite za argument. Zamiast tego proponuję _delay_us(890); . http://www.nongnu.org/avr-libc/user-manu... Poza tym radzę używać timera, zamiast takich próżniackich cudów. ;)
Zapoznałem się z "AVR Libc Reference Manual", wynika z niego, że funkcję _delay_ms i delay_us po przekroczeniu pewnej wartości jako parametru traci na swej dokładności. Ponadto w kilku wątkach na forum, związanych z odmierzaniem czasu, wspomniano również, że ww. funkcję są "strasznie" niedokładne, jednak nie wyjaśniono tego dokładniej. Tutaj pojawia...
Witam Czy jest możliwość stworzenia tablicy która będzie zapisana w pamięci eeprom ?? Mam ta tablice ( raczej dane jakie mam w niej umieścic) i jak nie ma innej opcji wpiszę je ręcznie w edytorze hex.. korzystam z avrstudio i nie bardzo wiem jak mogłbym sobie z tym poradzić ten uC ma 512 bajtów moje dane zajmują troche ponad 300 chodzi mi o przykład...
Witaj, Naważniejsze - volatile: http://mikrokontrolery.blogspot.com/2011... Nie definiuj F_CPU w kodzie ponieważ: http://mikrokontrolery.blogspot.com/2011... Po za tym, zamiast SIGNAL używaj ISR i nowych wektorów przerwań: http://www.nongnu.org/avr-libc/user-manu... Popraw,...
Witam Wracając do początku pytanie, to autor zaprojektował to na Atmega8, Atmega88V nie ma jak piszesz takiego samego poboru prądu jak Atmega8A, według manuala jest to 5 razy mniej, na dodatek Atmega88V może pracować spokojnie przy 1,8V co w przeliczeniu na moc daje nam 10 razy mniejszy pobór. Z tego co pamiętam to seria P procesorów pobiera jeszcze...
Mówisz... a jak to się robi, co trzeba zrobić:?:. Czy jest tutaj jakiś związek między tymi wektorami przerwań a stroną 44 w manualu od atmegi? Jeśli tak prosił bym o wytłumaczenie jak to zrobić.
1. Zamiast pisać: #define DI_INIT()PORTC_DIR |= 0x20/* Initialize port for MMC DI as output */ #define DI_H() PORTC_OUT |= 0x20/* Set MMC DI "high" */ #define DI_L() PORTC_OUT &= 0xDF/* Set MMC DI "low" */ możesz zapisać: #define DI_INIT()PORTC_DIRSET = 0x20/* Initialize port for MMC DI as output */...
Witaj, Zastanów się nad tym: [syntax=c]TOIE1[/syntax] w kontekście: [syntax=c]TIMER1_COMPA_vect[/syntax] Na wszelki wypadek spis wektorów przerwań: http://www.nongnu.org/avr-libc/user-manu... EDIT. Ode mnie 15pkt, bo masz mało, a mogą się przydać :)
W bibliotece avr-libc masz już gotowce, popatrz tutaj: http://www.nongnu.org/avr-libc/user-manu... Jest tam też funkcja na x^8 + x^5 + x^4 + 1
No niestety DummyByte nic nie dało :( Mogę coś jeszcze zrobić? tutaj jest manual do ADXL'a http://www.analog.com/static/imported-fi... Nie mam już niestety pomysłów ;(
Niestety, książka jest o innym procku, a informacje zawarte w niej stanowia w sumie tłumaczenie datasheetu. Wychodzi, że opisany procek ma inne fusebity itd. A ogólne informacje pokrywaja się ogólnie z tym, co napisano w manualu atmegi8. Ale dzięki za dobre chęci :)
....a co mam jeszcze dodać ? ... Linię informującą kompilator jaki to będzie procesor, informację jaki kwarc zostanie użyty. Do BASCOM'a jest dobry manual po polsku. W EdW był drukowany cały wieloodcinkowy kurs BASCOM'a. Od tego zacznij.
Najpierw ładujesz do procka program bootloadera przy pomocy programatora. Wcześniej ustawiasz fuse bity, miedzy innymi określasz obszar bootloadera. aha, ok - rozumiem, że odpowiednie ustawienie Fuse Bits pozwala na "przestawienie zwrotnicy" w kierunku pamięci Boot Loadera (a nie jak to zwykle do pamięci flash, tej w której odrazu program zaczyna działać)...
Ad 1. Zadeklaruj a nie jako: int a=..... tylko jako unsigned int a= To nic nie zmieni. itoa - integer to ascii Zamiast itoa() zastosuj utoa() Ad.3 char * dtostre (double __val, char *__s, unsigned char __prec, unsigned char __flags) char * dtostrf (double __val, signed char __width, unsigned char __prec, char *__s) http://www.nongnu.org/avr-libc/user-manu...
MOże więcej szczegółów? Jaki zakres temeperatur, jaka rozdzielczoś? uC praktycznie dowolny (AVR, '51, PIC), do tego albo czujniki analogowe (Pt100, termopara, KTY, itp) i uC z przetwornikiem A/C (większość AVRów ma wbudowane) albo czujniki z interfejsem cyfrowym (DS1820, DS1621 itp). Proponuję zacząć od przestudiowania manuali podanych układów scalonych...
mam Atmega8 i podlaczony rezonator zewnetrzny 12MHz - programator AVRISP - podlaczony tak jak w manualu do procka - linie sa podpiete do 5V przez 10k, Nie wiem czemu AVRStudio nie widzi go - nic nie odczytuje z niego - nie ma komunikacji - mam atmega161 - to znim "gada" co trzeba na poczatku z prockiem zrobic?? sprawa jest w miare pilna
Witam Atmega8 sprzętowo obsługuje i2c (wprawdzie nazywa się to TWI, ale to jest to samo) i sugerowałbym użycie tej opcji. Tutaj masz przykładową bibliotekę służącą chyba do obsługi EEPROMów: http://www.nongnu.org/avr-libc/user-manu... . Uwalniasz się od konieczności zabawy z bitami wysyłanymi/odbieranymi. Pozdrawiam tn
W manualu od uC masz tabelkę opisującą które przerwania (od czego) wybudzają procesor zależnie od głębokości uśpienia - to Ci powinno wszystko wyjaśnić.
Moim zdaniem masz źle ustawione fuse bity. Zajrzyj do dokumentacji ATmega8 (System clock and clock options -> Clock sources -> Cristal Oscillator). Tam jest taka tabelka, z której by wynikało, że zastosowałeś ustawienie dla kwarców z przedziału 0.9 do 3.0 MHz, a o ile dobrze rozumiem masz kwarc 4MHz. Generalnie do ustawiania fuse bitów ja używam tego...
Ściągnij sobie to: www.atmel.com/dyn/resources/prod_documen... i przejrzyj to: http://www.nongnu.org/avr-libc/user-manu... Jak zliczać piny Ci napisałem, teraz odpal jakiś timer na 1s i w przerwaniu oblicz tylko prędkość
............ O erracie wiedzialem, i kupilem najnowsze wydanie z uwzglednionymi błędami. Przytoczony fragment błędnego programu pochodzi jednak z Wydania I (2004), a nie z najnowszego, poprawionego wydania, którego rzekomo jesteś w posiadaniu. Jeżeli wartość wpisywana do Timer0 = 250 jest błędna (pomimo, że autor tłumaczy jak to uczynić), to mam ją...
Witaj, O volatile kolega słyszał? Jeśli nie, to czas poczytać: http://mikrokontrolery.blogspot.com/2011... Stosuj nowe funkcje obsługi przerwań ISR(), tym bardziej, że używasz nowe ich wektory: http://www.nongnu.org/avr-libc/user-manu...
(at)emarcus: O ile się nie mylę, przy prescalerze 64 i cżestotliwości 8MHz timer0 będzie miał skok co 8us, czyli licznik bedzie przepełniał się co 2,048ms, więc do poprawnego odliczenia 1s w obsłudze timera należy załadowywać do niego Timer0 = 6, i dodać licznik, który 500 razy zliczy przepełnienia. A co do tych parametrów, to zawsze wstawiałem domyślne...
Za bardzo nie jestem praktykiem w C (w asm nie muszę się zastanawiać nad winą kompilatora, jak coś nie działa to tylko z mojego powodu... :}), ale widzę, że miksujesz starą nomenklaturę nazewnictwa obsługi przerwań i nową : http://www.nongnu.org/avr-libc/user-manu... Od nieczytelnego makra _BV proponuję też odejść i używać...
Ratunku ! Zaczalem z ATMEGA8-16 i Ponyprog2000 . Jak ustawic bity : CKSEL3-0 ; RSTDISBL ; WDTON ; CKOPT ; EESAVE BOOTSZ1-0 ;BODLEVEL ; BODEN ; SUT1 ; SUT0 ; BOOTRST BOOTLOCK Kwarc 4 MHz . Program jest napisany poprawnie poniewaz pobralem go z literatury . Przeczytalem caly manual ATMEGI-i i mam salate w glowie . Jesli ktorys z kolegow ma na tyle cierpliwosci...
próbuję zaprogramowa go prostym programem migającym diodami i nie mogę, nie wiem jak. Program mam zaczerpnięty z internetu i wygląda tak: I tu od razu babol kolejny - gdzie wciskają ci np linijkę #define F_CPU ..... Panie kolego Mirku, nie jest to żaden babol, tylko jedno z rozwiązań informowania kompilatora o częstotliwości zegara zgodnie z manualem...
TCCR1B |= ((0<< WGM11)|(0<< WGM10)); TCCR1B |= ((1 << CS10) | (1 << CS11)); //Ustawia timer z preskalerem Fcpu/64 TCCR1B |= ((0<< WGM13)|(1<<WGM12))... Nie prawda, jest ustawione na tryb CTC (MAX = OCR1A)z preskalerem 64 :P spójrz jeszcze raz w...
$katalog_WinAVR$/doc/avr-libc/avr-libc-u... Tworzysz osobny plik w asemblerze (.S, nie .s) zawierający procedurę obsługi przerwania, kompilujesz do pliku .o i linkujesz z pozostałymi plikami. W dołączanym wo WinAVR szablonie Makefile jest przewidziane miejsce na wypisanie źródeł w asemblerze (ASRC = $tu wpisz nazwy plików$). Przykład,...
Witam, -U lock:w:00 -U efuse:w:00 Tyle że ja nie zmieniałem fuse bitów... Hmm... to poszukaj może w manualu co powodują dwa powyższe parametry :] Ludzie, używajcie programów, których działanie rozumiecie. Pozdrawiam, Dr.Vee
Hehehe, nieby tak, ale zadaj sobie tyle trudu i przeczytaj manuala skoro mi nie chcesz wierzyć. A praktycznie sprawę też przećwiczyłem swego czasu po zmianie źródła zegara na zewnętrzny oscylator przez SPI procek się nie chciał programować. Myslaem, że go coś ubiło, więc wziąłem następny i tak 4 sztuki. Potem była godzina z manualem, dołożyłem opornik...
Kompilator wysyła ostrzeżenie odnośnie wektora przerwań: 'SIG_UART_RECV' appears to be a misspelled signal handler Zmień na nowe wektory i funkcję ISR(): http://www.nongnu.org/avr-libc/user-manu... Przyglądnij się także funkcji usart_inicjuj(): http://mikrokontrolery.blogspot.com/2011...
Jeśli chodzi o program do ładowania pliku wykonawczego do kontrolera (avrdude), to wg. manuala obsługuje on następujące kontrolery: ATtiny15 AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 ATMEGA163 ATMEGA169 ATMEGA128 ATMEGA103 ATMEGA16 ATMEGA48 ATMEGA8 ATMEGA88 Jak widać, są w śród nich również ATMega, z tym...
bosch manual bosch manual funai manual manual toshiba
gazowanie reduktor znajdować filtr paliwo konwertowanie plików video
Błąd P16DE w Peugeot Boxer 2.0 BlueHDi 110KM Nissan M9R 2.0 dCi 2007 – moment dokręcania panewek wału, sekwencja, śruby TTY