jakie jest ustawienie rezonatora wewnętrznego w atmedze 8 nowej? 1MHz Zmienić to można tylko fusebitami. Jeśli się boisz to tymczasowo - dla prób - możesz zmienić: "Counter1 = Counter1 + 34286 " na "Counter1 = Counter1 + 61629". Będzie prawie sekunda.
To wręcz pewne, że masz złe ustawienie. U mnie ustawienie by używał kwarcu to lfuse = 0xEE. Być może masz gdzieś ustawioną zmienną jakąś, która definiuje częstotliwość taktowania. Skąd funkcja opóźniająca ma wiedzieć, czym jest proc taktowany i jak szybko? Poszukaj zmiennej F_CPU albo F_OSC i ustaw właściwą wartość (takie zmienne są przynajmniej w C).
1. Źle ustawiony typ procesora 2. Musisz ustawić, jeśli nic nie zablokowałeś twardo, niską częstotliwość SCK, aby przestawić fusebity.
witam wszystkich Dopiero zacząłem przygodę z programowaniem i pojawił się problem Chciałem zrobić zegar na Atmega8. Przepisem program z książki (wiec domyślam się zę nie ma błędów) Zrobiłem prosty układ na płytce stykowej. Do Atmegi podpiąłem kwarc 8MHz dwa kondensatory po 27pF i i wyświetlacz LCD 2x16. Program ruszył od razu ale za wolno chodzi sekunda...
A jak podłączyłeś przycisk TOW do portu ? Standardowo ustawiamy port jako wejściowy i podciągamy go do plusa przez rezystor wewnętrzny a przyciskiem zwieramy do masy. Dodano po 4 Wystarczy wtedy uznajemy TOW jako aktywny z poziomem logicznym zero. Czyli zmienić tam gdzie TOW=1 na TOW=0 Jak przycisk jest wciśnięty to mamy zero jak wolny to jeden
Wolne piny zostawiłem w spokoju i działa - dzięki !
Wpisanie w programie info o prędkości nie ustawi mikrokontrolera na korzystanie z kwarcu. Prawdopodobnie ATMEGA32 jest ustawiony na 1MHz(ustawione podczas produkcji) dlatego wolno działa.
Chodziło mi o to że Fuse Bity sa dobrze ustawione a procesor i tak działa bardzo wolno. Czy Atmega8 ma jakis wewnętrzny dzielnik sygnału zegarowego ustawiany jakimś fuse bitem?
Niepodłączony pin AVCC. O tyle ciekawe że w dokumentacji również piszą o podłączaniu tego pinu - a ja kiedyś nieświadomy zostawiałem wolny - i działa :)
Schemat i zdjecia drugiej strony - juteo (zostswilem na biurku w pracy). Co znaczy "zwarcie miedzy ukladem i konwerterem"? Maja polaczone masy, zasilanie oraz nadawanie i odbior na krzyz. Wiecej nic ich nie laczy. Zapytam o BOR - chodzi o to, ze napiecie zbyt wolno narasta w czasie wlaczenia i trzeba ustswic prog przy ktorym zaskoczy?
O paleniu w łazience nie pomyślałem bo u mnie nikt nie pali, ale czemu nie! Można i to dołożyć. A wyświetlacz dałem tylko do symulacji ;-) w łazience jest tylko czujnik ruchu, "krańcowka" przy drzwiach i układ na Atmega8 (bo taki akurat miałem wolny) no i oczywiście przekaźnik załączający światło. Wszystko działa bez dotykowo i jest idiotoodporne.
Tak, dziękuje. Doszedłem do tego dzisiaj rano. Wszystko funkcjonuje w miarę poprawnie. W wolnej chwili udostepnie kod dla pozostałych osób z tym samym problemem.
okej już działa...teraz problem jest z tym że przy 25 "if" w przerwaniu program w pętli jest wykonywany bardzo wolno :/
Na 3 stronie przytoczonej dokumentacji jest przebieg ilustrujący sposób pomiaru, nie ma sensu robić tego z częstotliwością tak dużą, bo czujnik działa dość wolno, a mierząc tak gęsto możesz trafiać na stany nieokreślone.
według mnie to za wolno działa uC( ale jak naprawić to nie wiem), a ICR1 musiało gdzieś wyparować przy wklejaniu
Ja tak z ciekawości zapytam: co masz podłączone do PC6(ten żółty przewód) wiesz ze to jest reset? No i co z wolnymi pinami wyświetlacza są podłączone do masy? EDIT Czy kręcenie potencjometrem zmienia kontrast? Może podłącz diodę pod jakiś wolny pin i spróbuj ją zaświecić będzie wiadomo wtedy na 100% że mikrokontroler działa.
Dla ATmega8 na str. 91 jest wzór na częstotliwość PWM Może masz zbyt wolny zegar żeby uzyskać pełne sterowanie? Albo zbyt duży preskaler?
Rozwiązałem w międzyczasie ale dzięki bardzo. Przyjrzę się Twojemu rozwiązaniu. Ja nie mam ograniczenia liczby bajtów. Zapisuję je do tablicy a tablice wysyłam na LCD po Stopie. Adres mam ustawiany sprzętowo z portu mikrokontrolera. Obsługuję tez General Call. Do czasu wyświetlenia blokuje przerwanie od TWI aby niczego nie stracić - nie robiłem bufora...
Zapewne da się to zrobić inaczej. Da się tak jak w C przy czym w Bascomie wystarcza tylko poprawne wykorzystanie przerwań i obsługa "manualna" kilku rejestrów co akurat dla większości bascomowców jest problematyczne, bo język sam z siebie przyzwyczaja do rozwiązań podanych na tacy. A skoro już trzeba robić coś ręcznie, żonglować bitami w rejestrach,...
Spróbowałem po nieudanej próbie wybudzenia sygnałem CLK zrobić to ręcznie i nie mogłem. Mimo zwarcia INT1 do masy procek nie wstawał :-/ Więc chyba to jest jakiś problem w samym procku. Jeśli to ma znaczenie to używam kwarca 16MHz w tej atmedze, bo 8MHz był za wolny. Ogranicza to manewry z czasem wstania z uśpienia do 16K CK.
Pokaż jeszcze deskryptory, diody nie są za wolne dla takiej transmisji (max 187500 bajtów na sekundę, Ty masz dużo mniej) Nie używaj tego urządzenia bez tych diod.
Może wyjęcie zworki JP3 - slow sck pomoże Nawet nie ma co pomagać, ta zworka jest po to żeby zaprogramować procki, które domyślnie ustawione są na 1MHz i nie zawsze bez tej zworki chcą się programować. Wtedy dopiero się ją zakłada. No chyba, że ktoś cały czas pracuje na procku ustawionym na 1MHz (wewn. oscylator) to wtedy ma ZONKA. Pomóc może jeszcze...
(at)ele_marek Oczywiście jest to niewykonalne. Aby skalibrować cokolwiek potrzebujesz wzorzec. Tym wzorcem może być transmisja zwrotna. Jeśli tylko nadajesz to nie masz nic stabilnego w układzie wg czego mógłbyś zegar wykalibrować. Natomiast jeśli masz wolne piny to można zawsze zamias asynchronicznego UART, zrobić synchroniczny, wtedy master taktuje...
Tak czy siak - nie zapomniałem o F_CPU. Dodałem też definicję XTAL, ale nie ma wpływu. Jak wstawić do kodu w C fragment asemblera? Wymyśliłem, żeby wstawić pętlę, powiedzmy 255 razy po 255 razy NOP i zmierzyć, jak długo się wykonuje. Powiedziałoby mi to jednoznacznie z jaką prędkością działa układ. Może ktoś ma jakieś doświadczenie z takimi wstawkami...
Nie ma różnic, bo sposób przesyłania danych określa protokół programowania mikrokontrolera. Wiele programatorów ma procesory, ale one służą innym celom w zależności od typu programatora. Dla tanich (usbasp) procesor udaje urządzenie USB-device, najczęściej jest to jakaś ATMega8, w efekcie procesor jest średnio kompatybilny z USB, a całość działa wolno....
Witam Mam prośbę dotyczącą konwersji wkładu z procka 90s4433 na Atmega8. Poskładałem sobie niedawno tan układ publikowany w EdW grudzień 2003 "Akwariowy kombajn" i nigdzie nie moge dostać mikroprocesora 90s4433. Wiem że jego rozbudowanym zamiennikiem jest Atmega8. Udało mi się przekonwertować program na procesor Atmega8 w programie BascomAVR jednak...
Dziękuję za pomoc. Poradziłem sobie ciut wcześniej za pomocą programu burnomat. Swoją drogą bardzo przejrzysty program i prosty w obsłudze. Oczywiście uprzednio sporo czytając, że ów problem leży w tych magicznych fusebitach (o których do tej pory nie musiałem nic wiedzieć, bo procesor który dostałem z płytką testową był już odpowiednio "ustawiony")....
To może jeszcze spróbuj tak. Wstaw kwarc poniżej 8MHz. Spróbuj ustawić oryginalne fusebity poleceniem: avrdude -p m8 -c stk200 -i 1000 -U lfuse:w:0xE4:m -U hfuse:w:0xD9:m (przy takiej wartości "-i" to trochę wolno idzie). Wykasuj pamięć avrdude -p m8 -c stk200 -i1000 -e Wklej pełne komunikaty AVRdude.
Co do kodu: 1. Na początek zrezygnuj z przerwań. Obsługa 1wire wymaga dużej precyzji "czasowej" - opóźnienia liczą się w µs. Jeżeli w czasie trwania komunikacji 1wire pojawi się przerwanie to zależności czasowe się rozjadą. Jak już będzie działać to możesz wrócić do przerwań, ale wyłączać je na czas wysyłania/odbierania bitów z 1w. Lub jeszcze...
Witaj, Przypomnij się na email to podrzucę na forum obsługę TWI do Atmeg napisaną w C działającą na 100%. TWI nie jest trudne ale z tego co pamiętam to jest tam jakiś myczek z zapisem do rejestrów. Pozdrawiam Dodano po 3 Witam, autor tematu otrzymał już obsługę I2C w C, ale tak sobie pomyślałem że od czasu do czasu pojawia się takiż problem dlatego...
Na ostatnim schemacie masz źle podłączony reset do gniazda programowania - mają być połączone bezpośrednio, a rezystor ma podciągać do zasilania. Staraj się prowadzić linie na schemacie pod kątem prostym wzdłuż siatki. Unikaj prowadzenia skośnych ścieżek na schemacie (chyba, że już musisz), ale nigdy nie rób łączeń na takich liniach, bo mogą nie trafić...
Witam, Piszę programik na ATTINY10, gdzie każdy bajt RAMu jest cenny. Program po inicjalizacji odblokowuje przerwania i przechodzi do nieskończonej pętli while, gdzie wywołuję tylko instrukcję sleep_cpu(). Kod asemblera z pliku .lss: [syntax=asm] while(1) { sleep_cpu(); aa:88 95 sleep ac:fe cf rjmp.-4 ; 0xaa <main+0x58>[/syntax] Program nie posiada...
Jak zwykle można na Ciebie liczyć mirekk36 Zmienne w EEPROM są mi potrzebne z dwóch powodów: aby zaoszczędzić RAM i aby w późniejszym czasie napisać sobie program dla Windows, który dałby mi możliwość edycji samego EEPROM. W eeprom chcę zapisać numery telefonów i fragmenty ciągu SMS w PDU. Następnie w zależności od sytuacji chcę składać z tych zmiennych...
No tak, ale przerwanie mam co jedną sekundę, więc świeciła by tylko jedna cyfra na przemian co sekundę. Dlatego włączyłem drugi timer: [syntax=cpp]//Nauka obsługi wyswietlaczy //Atmega8 12MHz #include <avr/io.h> #include <avr/interrupt.h> #include <stdint.h> #include <util/delay.h> #define wyswietlacz1 0x01 #define wyswietlacz2...
Przykład działa! Program rysuje na wyświetlaczu biały prostokąt. Instrukcja CLS wymaga jeszcze optymalizacji, bo dość wolno czyści ten ekran. Jednak przykład odpaliłem na Atmega8 z zegarem 8MHz. [syntax=c] /* * main.c * * Created on: 25 sie 2015 * Translated to C from Arduino by MaS24 * */ // ic:ili9327 //#define LCD_RD A0 //#define LCD_WR A1 //#define...
Straciłem cały dzień, by do tej głupoty dojść, więc podzielę się - niech google zindeksuje rozwiązanie. "Arduino as isp programmer" - jasna sprawa, tysiące poradników w sieci, jak podłączyć i co kliknąć. Jednej rzeczy nie piszą - że arduino jako ISP nie programuje fusebitów. Potrzebowałem na szybko Atmega8 zaprogramować. ArduinoUno z wgranym skeczem...
atmega8 wolno komputer wolno dziać internet wolno dziać
kasowanie renault laguna poziomować światła łożysko skrzyni
sklep elektroda inwerter mikrofalówki
Odblokowanie radia Opel Signum bez kodu Jak połączyć Xbox 360 RGH z Xbox Live bez bana?