twoje rozumowanie wynika z uproszczonego analizowania działania rejestrów: dla ciebie jest to zwykła komórka, do której to co się wpisze będzie odczytane (w skrócie)... od tego stanu jednaj zacznie odbiegać np rejestr wymiany danych z usartu - do którego wpisuje się dane do transmisji, ale odczytuje dane z odbiornika... w praktyce rejestry i/o są bardziej...
Raczej rezonator, drgania występują w równych odstępach czasu, służy jako taktowanie, co takt wykonywane są jakieś obliczenia, a także można dzięki niemu określić upływ czasu. Atmega ma też wbudowany oscylator, działa, ale jest mniej dokładny.
Nic nie muszisz dobierać. Pod XTAL1 podłącz zewnętrzny generator 1MHz i ruszy. Jak nie to info przecież są w datasheecie. Dodano po 2 C ~ 33p R ~ 10k
sorex86 --> nie przesadzajmy, to nie jest jakaś tajemna i wielka znowu wiedza, to raczej podstawy i dlatego o tym piszę, żeby ktoś skorzystał. A jak już jest ta wiedza, to i czasu nie trzeba tyle poświęcać na odpalanie tak prostej rzeczy jak transmisja RS232 i to bez żadnego kwarca zewnętrznego. Bo jak sam widzisz, tutaj problemem nie jest kwarc.
ważna sprawa czy zmieniłeś na "external clock" czy na "external XTAL" bo jeśli external clock to procesor móci dostać sygnał zegarowy z zewnątrz a to znaczy że musisz mu podać sygnał z innego żródła na generator lub inny procek. jeżeli natomiast ustawiłeś zewnątrzny kwarc i nie dziłał to coć żle go podpiołeś. sprawdz jeszcze raz podłączenie kwarcu i...
1.Tak ale podłącz obydwie linie, masa również wspólna. 2. Prawda ale da się kalibrować oscylator.
Opis wersji znajduję się w pdf'ie w zakładce "Ordering Information" AU - to wersja bezołowiowa ;) Pb-free Co do fuse-bitów... najpierw Write FSH a potem Write FS Wyłączony JTAG i włączony zewnętrzny kwarc http://obrazki.elektroda.net/70_11571411...
Slyszalem ze jest jeszcze progamator typu JTAG, w czym sie lepszy od STK200? JTAG jest bardzo pięknym i przydatnym urządzeniem Dzięki niemu bez problemu Debugujesz swój program znajdując w nim wszystkie najsłabsze punkty, masz wgląd do pamięci EEPROM, jednym słowem widzisz pozwala ci zajrzeć wgłąb procesora :D Ciekawostka :?: Jeżeli procek ma interfejs...
Próbowałeś podłączyć mu rezonator kwarcowy o różnych częstotliwościach ?
W tym programie program wykonuje w kółko instrukcję PORTB|=1<<PB0; Instrukcja PORTB|=0<<PB0; jest bezefektywna, gdyż przesuwasz 0 "PB0"-razy, czego wynikiem jest 0. Możesz poprawić to przez: PORTB &= ~(1<<PB0); Brakuje klamry, którą obejmiesz kod wykonywany w pętli. Pint main (void) { DDRB|=1<<PB0; DDRB|=1<<PB1;...
Pisząc 8MHz (wewnętrzny kwarc) miałeś chyba na myśli wewnętrzny oscylator ? tak? i że przy takiej konfiguracji szwankuje ci ATmega16 ???? Jeśli tak to mogę się podzielić moimi spostrzeżeniami. Otóż nie wiedzieć czemu też często a w zasadzie zawsze gdy biorę Atmega16 na wewn oscylatorze 8MHz to na 9600 nie chce mi działać zbyt dobrze podczas gdy ATmega8...
Witam, Pierwsze pytanie to czy masz poprawnie zaprogramowaną Atmegę? Jeśli sekundnik stoi to obstawiam na źle ustawione fusebity przy programowaniu przez co AVR może pracować na wewnętrznym oscylatorze.
To zależy od tego co dalej załącza ten przekaźnik,miałem taki przypadek że przy 150nf podtrzymaywał się stycznik który załączałem przekaźnikiem więc trzeba ostrożnie....jeśli ten kondensator jesy na 250 v prądu przemiennego to mozesz,tego typu kondzie są liczone na przepięcia chwilowe na dużo wyższe napięcie niż znamionowe ale to już zależy od typu...
Witam. Mam pytanie czy to możliwe, żeby ATMEGA16 z czystą pamięcią Flash pobierała 70mA? Buduję układ, który będzie pracował cały czas w samochodzie i te 70mA to trochę za dużo bo po kilkunastu dniach bez uruchamiania silnika akumulator się rozładuje. Pozdrawiam Nie przesadzaj, przy pojemności akumulatora 45Ah to wytrzyma 640 h. U mnie Atmega8 z programem...
Spróbuj programem AVR8_Burn_O_Mat Bity CKSEL3...0 z wartości 0001 zamień na 0011. Więcej informacji w tabelce nr 9 w dokumentacji: [url=http://www.atmel.com/dyn/resources/... Pozdrawiam
Nie wiem w czym bedziesz pisal ten program jednak zmiana fusebitow to wybor odpowiedniej opcji podczas programowania. Tylko uwazaj poniewaz mozna zablokowac mozliwosc programowania ISP lub wybrac zewnetrzny generator wtedy uC bedzie martwy. (nalezy podlaczyc zewnetrzny generator). Co do czestotliwosci wydaje mi sie ze to jest 1Mhz ale moge sie mylic....
ATMega16 1MHz (wewnetrzny oscylator)
To wszystko da się zrobić na ATmega16 ale ja zastosowałbym jednak zegar zewnętrzny w postaci układu DS1307 taktowany stabilnym, skompensowanym termicznie generatorem DS32kHz. Jak ładnie poprosisz producenta to przyśle Ci te elementy gratis jako sample. Termometr też Ci dorzucą. Najlepiej DS1621 lub DS1624, ponieważ pracuje (podobnie jak zegarek DS1307)...
Poniżej zamieszczam plik w którym zawarty jest projekt programu dla AVR ATmega16(oscylator = 16Mhz), który jest napisany na podstawie książki. W symulatorze AVR Studio 4 wszystko działa OK, ale w praktyce układ nie reaguje na przyciski(chyba, że ręcznie podaj '-' na odpowiednią nużkę wejścia portu). Podejrzewam, iż nieprawidłowo zadeklarowałem port,...
Witam Programuje przez Bascom AVR Problem jest taki ze nie moge ustawic procka ze by dzialal na zewnetrznym oscylatorze. Fusebit ustawione tak jak na printscreenie. Zewnetrzny kwarc 16Mhz, kondensatory przy kwarcu 22p (dzisiaj jeszcze dla pewnosci wymienialem) Gdy przestawie go na wewnetrzny oscylator 1Mhz zaczyna dzialac.
Moim zdaniem czas opozniej nie jest dostosowany do twojego oscylatora.
SZUKAJ Twoim przyjacielem. Po przestudiowaniu tego wątku znajdziesz odpowiedź na interesujący Cie temat : http://www.elektroda.pl/rtvforum/topic56...
może trzeba przepgromować fuse bity? pewnie jtag jest włączony i wewnętrzny oscylator
Witam Co będzie lepsze oscylator kwarcowy czy generator kwarcowy(4 nóżkowy) do taktowania procesora? Chodzi dokładnie o 16MHz. Oscylatory te zwykle maja dokładność <=50ppm, a generatory 100ppm. Oczywiście chodzi mi o takie przeciętne do dostania w sklepie lub takie ze starych płyt komputerowych. Czy generatory kwarcowe mają wbudowaną stabilizacje...
Przecież ze schematu (np Figure 64) jasno wynika że preskaler odnosi się zarówno do zewnętrznego oscylatora (tryb asynchroniczny) jak również do sygnału zegarowego. Wybór dokonujesz w rejestrze ASSR.
Nie jestem pewien, bo jeszcze tego nie sprawdzałem, ale obstawiałbym,że tak, jest 0x00 jest wysyłany. Oczywiście, że jest wysyłany. Procesory jeszcze nie wyewoluowały w kierunku pobierania danych przez osmozę czy telepatię ;) Widać, że zamiast 0x00 jest 0xC0, zamiast 0x01 jest 0x81, ale przy 0x11 jest już ok, tak jak przy innych bajtach bez zera np....
Najpierw to $crystal = 14745600 zamień na to: $Crystal=1000000 Nie zmieniałeś fuse bitów więc korzystasz z wew. oscylatora 1MHz. Na pewno masz 4k7 do drugiej nogi i do VCC?
A moze to nie jest kwestia Bascoma tylko tego ze Atmega nadal chodzi na wewn. oscylatorze 1MHz. Z objawow by tak wynikalo ze tak wlasnie jest. Przestawiales fusebity na prace z zewnetrznym kwarcem ?? Pozdro Dexter
Dzięki max_gg. Włączyłem oscylator wewnętrzny procesora 4MHz, ponieważ nie jest ważna aż taka dokładność. Czy to zadziała w takim rozwiązaniu? Zauważyłem też, że atmega16 pracuje stabilniej na oscylatorze wew. Nie wiem dlaczego gdy miałem podłączony rezonator 8MHz zew. to co jakiś czas na wyświetlaczu LCD wyskakiwały jakieś dziwne "rzeczy".
o znalezieniu informacji (tylko anglojęzycznych, niestety), że "Full-swing" stosuje się przy układzie rezonator kwarcowy pomiędzy XTAL1 a XTAL2 plus ew. kondensatory do masy a Ext. Crystal dla generatora kwarcowego do XTAL1 - zgłupiałem jeszcze mocniej. Full swing powoduje zwiększenie amplitudy oscylacji - poprawia to stabilność i pewność startu, szczególnie...
Czy aby "Ext. RC Osc. ..." to nie jest zewnętrzny oscylator - ale RC a nie kwarc? "For 12 MHz frequency of external crystal, CKSEL [3:1] is set to 111." ze strony http://www.engineersgarage.com/tutorials...
jest 8MHz poniewaz tyle moze pracowa przy wewnetrznym oscylatorze.
Minimalna częstotliwość jaką da się uzyskać to 0,015Hz. Teoretycznie, nie bawiłem się nigdy w takie rzeczy, no bo po co? Atmega16 taktowana z wewnętrznego oscylatora 1MHz. Prescaler dla timera /1024. Timer1 jako FAST PWM tryb 14 lub 15, daje 16bit PWM. 1000000Hz / 1024 / 65536 = 0,0149Hz.
Witam. Nie wiem czy to nadal aktualne ale ustaw wewnętrzny oscylator na 8MHz. powinno pomóc.
Skoro wcześniej przy niskich temperaturach było dobrze to przy nowym układzie tez powinno być dobrze, zimne luty sprawdziłem, kondensatory też, poza tym jak wspominałem podgrzanie samego układu przywraca pracę, dlatego tak obstaję za winą układu. To, że układ zaczyna prawidłowo działać po podgrzaniu świadczy o tym, o czym pisałem - jednym z parametrów,...
Sprawdz program, parametry transmisji (w kompie też)... Mega16 chodzi na wewnętrznym oscylatorze czy zewnętrznym kwarcu...?
ATmega nie ma wewnętrznego kwarcu, tylko wewnętrzny oscylator RC. Oscylator ten jest straszliwie rozjechany i nie ma dokładnie 1 MHz, chyba że się trafi taki egzemplarz, który akurat ma. Jak nie ma, to trzeba skalibrować. To może być jedna z przyczyn odczytywania złych wyników. Częstotliwość oscylatora pływa razem z temperaturą i napięciem zasilania....
Masz dyrektywę $CRYSTAL=11059200, czyli taki rezonator powinieneś użyć. Dodatkowo powinieneś ustawić odpowiednio FuseBity - do działania z zewnętrznym oscylatorem. Domyślnie działa na wewnętrznym oscylatorze RC z zegarem 1MHz. Jeżeli nie chcesz się bawić "fusami", zmień wartość za $Crystal na 1000000 i dodatkowo zmniejsz prędkość działania RS-a ($BAUD=2400...
Źródło taktowania ustawiane jest fuse bitami. Jeśli ustawiłeś zewnątrzny generator to nie wymagaj, żeby uC chodził na kwarcu. Ustaw kwarc i wtedy będziesz go podłaczał do XTAL 1 i XTAL2. Jak to mam niby ustawić ? Uzywam kompilatora BASCOM. Wchodze w zakładke programatora a potem jeszcze w ustawinia fusebitów i tam ma do wyboru wewnętrzny oscylatory...
Przy wewnętrznym oscylatorze nie ma dostępnych wyjść z zegarem.
kebaab -> wewn oscylator domyślnie w ATmega16 ustawiony jest oczywiście na 1MHz, ale z powodzeniem można go ustawić albo na 4MHz albo na 8MHz i tak się zastanawiam - czy właśnie może tego przypadkiem nie zrobiłeś zamiast ustawić go na zewnętrzny rezonator. Bo ty coś cały czas mówisz że masz podłączony zewnętrzny oscylator! - zdecyduj się bo zewnętrzny...
Witam Piszę w starym temacie żeby nie robić nowego. Uruchomiłem zegar na Atmega32 , kwarc zegarowy podpięty pod PC6 i 7. Wszystko działa ok , ale czy mogę podłączyć pod XTAL kwarc np 16Mhz ? czy procek musi działać na wewnętrznym oscylatorze. Pozdrawiam.
tak dla ścisłości - wewnętrzne to są wbudowane ale oscylatory a nie rezonatory, za co "płaci" się pewną małą nidogodnością jaką jest to, że nie generują one tak stabilnej częstotliwości taktowania jak właśnie rezonatory zewnętrzne. Jednak do znakomitej większości szczególnie amatorskich ale i zaawansowanych projektów taka dokładność wewnętrznych oscylatorów...
Te wewnętrzne oscylatory są niedokładne do tego stopnia, że ostatnio na wewnętrznym 8MHz w Atmega16 nie mogłem się dogadać po serialu 38400 bo predkość faktyczna była 40000 i w terminalu tylko krzaki. Czyli zachowuje się dokładnie tak, jak to opisane jest w nocie.Dopiero nowsze AVRy - XMEGA i nowe ATMega oraz AVR Dx mają wewnętrzny zegar na tyle stabilny,...
#define MYUBRR FOSC/16/BAUD-1 jest dokładnie przepisane z przykładu w datasheet ATmega16, więc to chyba nie to. Poza tym wyrażenie FOSC/16/BAUD jest chyba równoważne FOSC/(16*BAUD), bo wydaje mi się, że najpierw wykonywane jest działanie FOSC/16, a następnie wynik dzielony jest przez BAUD. Moim zdaniem większe znaczenie może mieć fakt, że przy BAUD=9600,...
Że tak się zapytam, fuse'y ustawiłeś na zwenętrzny oscylator kwarcowy ? :>
Witam ponownie dziś zaprogramowałem ponownie układ, i ustawiłem fuse bity i się nic nie zawiesza. Będę go dalej testować tak ze dziękuje koledzy. A jak kwarc wlutuje to się nie uruchamia Bo masz ustawiony oscylator wewnętrzny. Daj te fuse bity.
Akurat cały port C mam zajęty... planuje dać 11,0592MHz na 12 i 13 pin i na pająka oscylator wraz z kondensatorami.
Tak, dzięki, zgadza się. Chwilę po opublikowaniu postu rzuciłem okiem do datasheeta, gdzie jest sprecyzowane ustalenie dzielników prędkości magistrali. Teraz wszystko śmiga jak trzeba. SCL_freq = (CPU_freq) / (16 + 2(TWBR) * 4^TWPS) rejestr TWBR - bit rate, w 8 bitach rejestru TWBR w rejestrze TWSR, bity "0" i "1" w kombinacjach : "1"__"0" 0__0 - 1...
I wcale nie trzeba go zaraz fusami wyłączać bo po co? ... Wyłączyć go po prostu trzeba programowo. W takim razie nie bardzo rozumiem treści tabelki ze strony 53 Safety Level 2 In this mode, the Watchdog Timer is always enabled, and the WDE bit will always read as one. A timed sequence is needed when changing the Watchdog Time-out period. Ja to rozumiem...
A zmieniałeś Fusebit'y? Jeżeli nie to układ korzysta z wewnętrznego oscylatora 1MHz. Pozdrawiam
Witam Kodowanie na AVR jest dość wydajne, a ATMega16 w obudowie SMD nie zajmuje dużo miejsca.
Oscylator może mieć +-3% dla 1MHz i 25stopni zgodnie z notą katalogową (ATMEGA16, str. 27), więc do dokładnego odmierzania czasu zaleca się używanie zewnętrznego kwarca. Podobno może uzyskać +-1%.
http://obrazki.elektroda.net/90_12056735... Oto mały projekt pokazujący jak za pomocą mikrokontrolera można generować dźwięk. Układ bazujący na mikrokontrolerze Atmega16 jest w stanie odtworzyć dźwięk zapisany w plikach MIDI. Oczywiście wcześniej muszą zostać przekonwertowane w specjalnym programie dostępnym na stronie źródłowej. Jakość dźwięku...
Dodaj na początku programu następujące dyrektywy: $regfile = "m16def.dat" $crystal = 7372800 $hwstack = 128 $swstack = 128 $framesize = 128 Rozmiary poszczególnych stosów ustaw według własnych potrzeb. Wpisz również odpowiednią częstotliwość zegara taktującego (rezonatora, wewnętrznego oscylatora, itp.). Pozdrawiam...
Nie wiem czy może tak atmega działać. Główny oscylator może działać na zewnętrznych generatorach. A czy Timer2 to nie wiem.
Fusy są w porządku. Jadę na wewnętrznym oscylatorze. Juą normalnie nie mam pomysłu na to dziadostwo
Spróbuj bez tego kondensatora innym programatorem. Możliwe, że ten uległ częściowemu uszkodzeniu w takich warunkach pracy. Widzę też inne wyjście: Podłącz zewnętrzny oscylator lub sygnał zegarowy 1MHz do programowania.
Wystarczy spojrzeć na PIERWSZY i najprostszy schemat aplikacyjny układu FT232RL w jego nocie PDF żeby zobaczyć, że zrobiłeś błąd na schecmacie. Wprawdzie niewielki ale potrafi on znacznie uprzykrzyć życie. Sam zobacz, sprawdź i porównaj. Ten układ działa ZAWSZE rewelacyjnie i bezbłędnie ;) Dodano po 1 Poza tym strasznie niejasno piszesz, bo twierdzisz...
http://obrazki.elektroda.pl/9824916400_1... Witam, Korzystając z ostatnich wolnych dni przed studiami chciałbym zaprezentować moją ostatnią konstrukcję. Jest to mały przenośny barometr. Konstrukcja powstała na potrzeby osoby wrażliwej na zmiany ciśnienia oraz spełnia jej wymagania tzn. mały rozmiar( 20x40x9mm) oraz co się z tym wiąże...
Witam, może ma ktoś gotowy kod kolegi "Zlata_n" pod atmege16/32 z oscylatorem 14,3 MHz (14318180)"? Tylko taki oscylator posiadam a chciałem wgrać przerobiony kod zlatana.
Witam! Ten kod powinien działać! Czym taktujesz ATMega?. Ja zawsze tam gdzie jest transmisja na UART daję kwarc. Wewnętrzny oscylator jest mało dokładny i mało stabilny termicznie.
dałem zewnetrzny kwarc i jest ok, co nie zmienia faktu,że atmega16 działala na wewnętrznym dla rożnych napięć, widocznie jej oscylator jest mniej wrazliwy na zmiany napięcia.
Po pierwsze - czy ustawiłeś prawidłowo fusebity, aby procesor pracował na zewnętrznym oscylatorze? Po drugie - w karcie katalogowej jest informacja, że rejestr UBRRH i UCSRR znajdują się pod tym samym adresem, więc instrukcją UCSRC|=_BV(UCSZ1)|_BV(UCSZ0&... wpisujesz tak naprawdę wartość do rejestru UBRRH! Aby wpisać ilość bitów danych...
Może być wew. oscylator, ważne tylko, aby prędkość obu była taka sama...
http://www.engbedded.com/fusecalc/ http://www.frank-zhao.com/fusecalc/fusec... Faktycznie niesamodzielność bo kalkulatorów na Internecie dostatek. Dodatkowo w większości programów do programowania (z GUI) masz wbudowany kalkulator. No i w pluginie Eclipse też jest...Nawet na Androida jest: https://play.google.com/store/apps/detai...
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.
Ten nieżywy :) procesorek najprawdopodobniej dostał jakieś wariackie ustawienia kwarca i przejście na zewnętrzny zegar :( Więc jak go chcesz uratować to tylko programator równoległy :( lub ..... zabawa zewnętrznym oscylatorem PLL na chybił trafił :)
To właśnie oznacza, że skonfigurowałeś procesor na pracę z zewnętrznym kwarcem (oscylatorem) i dlatego nie mogłeś się z nim później "dogadać".
Witam Nawet jeśli masz podłączony zewnętrzny kwarc to procek i tak z niego nie korzysta ( bo nie masz przestawionych fiuse bitów na zewnetrzny oscylator ) Spróbuj skasować procesor flasch i eeprom. Pozdrawiam
bua -> tu nie chodzi o oscylatory które mają częstotliwość nie będącą liczbą całkowitą - tylko o podział na tzw "przyjazne dla RS232" czy nie. Najprościej jak sobie zajrzysz do noty PDF dowolnego AVR'a i na ostatniej stronie działu poświęconego tematyce UART zobaczysz kilka tabelek w których będziesz miał rozpisane błędy transmisji dla różnej wielkości...
Trzeba, nie trzeba to zalezy jak zostaly ustawione FUSE BITY. Musialbys je odczytac i sprawdzic czy procek ma hulac na zewnetrzym kwarcu czy moze jet ustawiony na dzialnie z wewnetrznego oscylatora RC. No ale odpowiedz na pytanie: Aby zaprogramowac ATmega16 nie potrzeba zewnetrznego kwarcu o ile nic nie pozmieniales w FUSE'ach.
Zdecydowanie trzeba pomrozić i wyeliminować ewentualny wpływ wilgoci. U mnie ATMEGA16 pracuje w temperaturach poniżej -15st bez problemu. A jakie masz ustawienia oscylatora?
Palec czy inny przedmiot metalowy może być traktowany jako dodatkowe sprzężenie pojemnościowe tak dla samego układu jak i oscylatora kwarcowego może akurat w tym przypadku działać w taki sposób. Wiele układów mikroprocesorowych pod układem posiada pole przypięte do masy . Działa ono jak dodatkowy ekran a pewnie przy okazji też zmniejsza pobór prądu...
piszę w C, dla oscylatora 16Mhz. ma ktoś może jakiś przykład dla takiego taktowania? koszmar jest z tym doborem opóźnień :/
Oscylator wewnętrzny nie nadaje się do wykorzystywania, kiedy w układzie działa USART. Jest on mało stabilny. I stąd pewnie masz błędy. Algorytmy dla CRC są trudne dla implementacji w C# i AVR? No bez przesady. Ale, żeby nie było, że jestem taki zły ;) Dodaj do Atmegi zewnętrzny kwarc (Dobierz odpowiednią wartość zgodnie z datasheet'em). Proste CRC....
Może program nie działa nie wiem bo nic nie napisałeś o tym jak zaprogramowałeś atmege ani czym to zrobiłeś. Poza tym bez sensu podłączony S4 bo powinien być połączony z masą a nie z AREF. Jak masz ustawioną atmegą na wewnętrzny oscylator bo rezonatora kwarcowego nie widzę na schemacie?
Coś nadaje bo może działać na wewnętrznym oscylatorze - to że odbierasz śmieci świadczyć może o nieprawidłowych timingach, a więc błędnej częstotliwości taktowania procesora.
O tym akurat już czytałem i wiem, ale dzięki wielkie :). Generatora nie mam, spróbuję pewnie coś z zewnętrznym oscylatorem RC, ale póki co, dzisiaj jadę do AVT kupić kolejną ATmegę :/.
Mam pewien problem - chcę ustawić ATMega16 na 8MHz - wewnętrzny oscylator. Szukałem fusebitów i znalazłem na stronie I tam mi sugerują C4 i 99. A jak pamiętam, to programowałem kiedyś na hfuse:w:0xd9:m -u lfuse:w0x14 czyli trochę innych. W ciemno nie chcę wpisywać, żeby nie zablokować procesora. Które z nich są prawidłowe ? A czy mogę odblokować procesor...
W między czasie edytowałem swój poprzedni post. A zapytam przy okazji. One mają wewnetrzny oscylator na 1mhz? Tak. MHz, a nie mhz
A więc naniosłem kilka poprawek. Tym razem oscylator wewnętrzny: http://www.elektroda.pl/rtvforum/files-r...
Niechętnie, ale muszę przyznać że nie zrobiłem tego celowo. Czy oznacza to że nie muszę podłączać dodatkowych kondensatorów przy oscylatorze? Generalnie to problem z procesorem udało się pokonać, ale w poszukiwaniu optymalnych rozwiązań aktualne jest powyższe pytanie.
Oczywiście, że przejdzie na samych przerwaniach. Tyle że po pierwsze co mają przerwania do stabilności i precyzji wbudowanego oscylatora RC. A po drugie wybrany przez Cieie program, wybitnie mało z tych przerwań korzysta.
Na moje oko źle ustawione źródło sygnału zegarowego i mikrokontroler pracuje na wewnętrznym oscylatorze RC z prędkością 1MHz lub pozostał zaprogramowany CKDIV8 i sygnał oscylatora jest podzielony przez 8 ! Proszę sprawdzić ustawienie bitów cksel i prescalera. Wystarczy odłaczyć kwarca jeśli układ dalej nadaje to problem leży właśnie w tym .
Przecież jak sam nie włączysz uarta to on nie działa.Na Pc.6 i pc.7 masz oscylator timera.Popatrz czy gdzieś nie masz włączonego trybu asynchronicznego.
Według fuse calculatorów, są to wartości domyślne i oznaczają 8MHz na wewnętrznym oscylatorze. Według datasheeta oznaczają też włączenie preskalera, dzielącego sygnał zegarowy /8 ;)
Witam! Sprzęt: - ATmega16 (PDIP40), taktowanie - wewnętrzny oscylator 8MHz - cyfrowy termometr na magistrali 1-Wire DS18B20 (narazie jeden, później 3 ) podłączony 3-przewodowo, - LCD 2x16 na sterowniku HD44780, Soft: - WinAVR (avr-gcc 3.4.3). Zaznaczam, że w tej dziedzinie jestem raczkujący - parę lat już się za to zabieram. Chciał bym zbudować na początek...
Świetna rada...zważywszy, że nie ma kontaktu z uC... zawsze po przełączeniu na wew. oscylator traci się kontakt z uC. Jeszce wtedy był... i wcale nie chodziło mi o to że przez to stracił kontakt z uc.
Tak jak pisał Ci już kolega yarpen2, masz najprawdopodobniej źle ustawione bity Fuse! Odnośnie taktowania, ustawienia fabryczne są takie, że procek jest taktowany wewnętrznym oscylatorem RC 1MHz. Jeśli chcesz dołączyć kwarc, musisz zmienić bity Fuse CKSEL3..0 (opieram się na ATmega16). Zresztą poczytaj dokumentację Atmelowską. Pozdrawiam.
Mikrokontroler ATMEGA16, oscylator wewnętrzny 8 MHz, wykorzystany timer1 (16 bit). Dzielę połówkę sinusoidy na 100 części. 10ms / 100 = 0,1 ms = 0,0001s. Odcinki czasu 0,1 ms generuje mi timer1 Takt zegarowy t = 1 / 8000000 Hz = 0,125 ms Dla uzyskania 0,0001s muszę zliczyć 800 taktów ( 800 x 0,125 us = 100 us = 0,1 ms = 0,0001 s ). Aby licznik się przepełnił...
Procesor to atmega16L z wewnętrznym kwarcem 8Mhz (dodefiniowałem F_CPU 8000000L). bardzo ciekawe to co napisales, bo domyslnie ta atmega ma ustawiony oscylator 1MHz, a nie 8. do tego na porcie C ma cos takiego co sie zwie JTAG, co wypadaloby najpierw wylaczyc, jesli tego uzywasz. nie mam ochoty na wiecej zgadywanek, bo ani nie dalej schematu, ani calosci...
Teoretycznie w/g noty dla prędkości 2400 błąd transmisji dla 1MHz to 0,2%. Niestety czasem kalibracja fabryczna trochę kuleje więc możesz mieć pewien błąd wewnętrznego oscylatora. Jak to naprawić? masz rejestr o nazwie OSCCAL i tam możesz się pobawić. Co do zewnętrznych kwarców to są wartości tzw. przyjazne dla RS232 np. 110592MHz lub 73728MHz - zresztą...
W to może zamiast czytać posty i nie wiadomo co jeszcze w internecie - zajrzyj po prostu do PDF'a od ATmela gdzie masz porównanie ATmega16 i ATmega16A http://www.atmel.com/Images/doc8163.pdf kurczę - zaledwie 3 strony - i pokaż mi gdzie tam mowa o takich rzeczach jak różne oscylatory ? Pokaż mi choć JEDNĄ różnicę pomiędzy tymi dwiema wersjami procków...
No w skrajnych przypadkach, manipulując rejestrem osccal można wykręcić na wewnętrznym oscylatorze nawet i ponad 16MHz - było w temacie o uProgu ;-) Ogólnie do autora - jeśli częstotliwość zadeklarowana w kompilatorze jest zgodna z rzeczywistą to uzyskasz takie opóźnienie.
Zapomniałem napisać czy mi sie udało naprawić Atmege16 i teraz dotałem maila żeby to zrobić i zakończyć temat :D Tak więc po podłączeniu zewnętrzego generatora którego schemat podał atmel_team Atmega ożyła. W Bascomie zmieniłem fuse bit na wewnętrzny oscylator i teraz chodzi bez generatora. :D:D Dziękuję wszystkim za pomoc.
OK. zapoznaj się z intrukcją wait i toggle:P A jak chcesz konkretniej to z działaniem timerów. P.S. Oscylator wew. może chodzić na 1,2,4,8Mhz (Jak się nie mylę, ale na pewno na 1 i 8:D).
U mnie działy się takie historie gdy miałem $crystal poniżej 8200000 . Włączyłem zewnętrzny oscylator i $crystal = 8300000 i było ok. Mam taki termometr na wyświetlacz 3x7,czyli po twojemu 21 seg. Jeśli chcesz to udostępnię gotowca.
Piszesz ze używasz USBasp jesteś pewien ze programator sprawny ? ? Jakiego programu używasz ? Dodano po 9 Fabrycznie atmega ma ustawiony oscylator na 1Mhz wiec musisz przełączyć zworkę SCK_slow na programatorze.
No nie mozna sie teraz polaczyc z prockiem wogole, ani wpisac, ani zczytac nic... a uzywalem go na tej plytce pare miesiecy (wylaczalem tylko jtaga wiec chyba na wewn oscylatorze, chociaz qwarca podpialem razem z kondensatorami) i wgrywalem juz moze ze 100wersji programu.. czasami sie tylko wysypal. Uzywam ponyproga
radio oscylator przełącznik oscylator oscylator zegarkowy
lodówka turbo hamulec grzać hormann instrukcja rotamatic
Scania G 420: Awaria silnika a jazda bez karty Schemat instalacji elektrycznej Ursus C-330