Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Twój program można wykorzystać do celów akademickich: "znajdź co najmniej 10 błędów w tym kodzie".
http://obrazki.elektroda.net/18_12232839... Witam wszystkich, Od niedawna jestem posiadaczem motocykla, no i jako elektronik założyłem od razu, że będzie on poddawany mniejszym bądź większym modyfikacjom. Na początek postanowiłem wykonać wskaźnik załączonego biegu. Myślałem, że może to zmniejszyć ilość sytuacji typu próba wrzucenia siódemki...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Nie rozumiem o jaką pomyłkę Ci chodzi? Normalnie RCALL to 3 cykle a RET 4, sumarycznie 7. Tutaj masz RCALL 4 cykle a RET 5, więc masz 9 cykli. Przeglądając noty można natrafić na: atmega644, "5.8.1 Interrupt Response Time", drugi akapit wyraźnie mówi o tym, że PC ma trzy bajty (mimo że faktycznie górny bajt jest nieużywany, brak nawet rejestru EIND)...
szczywronek : Tu mój błąd, nie doczytałem, ze potencjometry są elementami nastawczymi, wiec całe moje zdanie niema sensu. Bartosz36 : Ad 1. Zgadzam się z Tobą, prawie napewno masz rację; chyba, że przerwanie trwa 12 sekund a wywoływane jest co 10 sekund. Ad 2. Niema tu żadnych haczyków, chodzi mi o czas - co który wywoływane jest przerwanie (najlepiej...
Witam. Napisałem program który ma sterować 2 licznikami w ATmega 16. Problem pojawia się w tedy gdy 2 liczniki zaczynają pracować razem ,ten drugi zaczyna przełączać przypadkowo i trzeba zresetować kontroler. liczniki sterują "układami świetlnymi. http://obrazki.elektroda.net/50_12262337... Dodano po 10 Problem pojawia się gdy licznik zaczyna...
Witam bawię się przetwornikiem ADC i mam problem. Ale żeby nie przechowywać w tablicy zbyt dużo danych to zastosowałem wzór: (wzór otrzymany po przekształceniu standardowego wzoru na średnią, sprawdzony) średnia(k) = (N-1)/N * średnia(k-1) + 1/N * pomiar i tu jest problem, bo jak uruchomię program: [syntax=c]#include <avr/io.h> #include <util/delay.h>...
Mam problem z odczytem Voltomierza. Woltomierz pokazuje np: 3,50.....3,90 potem przeskakuje na 4,00 ,4,10 ,4,20...4,90 i znów 4,10...4,90 i dopiero na 5,00. W dół jest taki sam problem . Liczy 2 razy dziesiątki ,odczyt 1 dziesiątek jest błędny Do Cursor Off For Z = 1 To 10 P = P + Getadc(3) Next T '----pobieranie P = P / 10 P = Getadc(3)...
Witam forumowiczów. Od paru godzin męczę się z pewnym problemem. Nie rozumiem dlaczego Atmega 32A błędnie liczy mnożenie trzech zmiennych. Utworzyłem zmienną "wynik" wielkości 4 bajtów (zakres liczb 0 do 4294967295) utworzyłem zmienną "a" wielkości 2 bajtów (zakres liczb 0 do 65535) utworzyłem zmienną "b" wielkości 1 bajta (zakres liczb 0 do 255) utworzyłem...
Witam. Piszę program do obsługi LCD. Piszę w asm i pod ATmega32. Przerwy czasowe chcę zrealizować za pomocą liczników. Program dla sprawdzenia inicjacii - nie pełny i nie działa właściwie - napisany dla próby. Napisałem początek programu i chciałem go zasymulować ale wciąż pojawia mi się ten sam błąd z którym po raz pierwszy się spotykam i nie wiem...
Witajcie! Próbuję zbudować sobie termometr, używam następującego kodu: [syntax=c] #include <avr/io.h> #include<util/delay.h> #include "LCD/lcdhd.h" #include "MACRO_PORT.h" #include "stdlib.h" #define PIN_1WIRE 2 #define PORT_1WIRE PINB #define OUT_1WIRE_LOW PORT_1WIRE &= ~(1<<PIN_1WIRE) #define OUT_1WIRE_HIGH PORT_1WIRE |= (1<<PIN_1WIRE)...
Walcze z licznikiem na Atmega 32 inicjacja wyglada tak : DDRB = 0xff; // DDRB jako wyjscie // t0 JAKO LICZNIK PORTB |= _BV(0); // BEZ PODCIAGNIECIA NIE CHCE LICZYC TCCR0 = _BV(CS01)|_BV(CS02); //_BV(CS00)| cs0 rosnace/~opadajace zbocze TCNT0 = 200; TIMSK |= _BV(TOIE0); // T0 wywoluje przerwanie Caly problem polega...
Witam. Ręce opadają. Od wczoraj próbuje zaprogramować uC by badał temp na poszczególnych czujnikach ale w różnych podprogramach. To znaczy włączam uC pokazuje mi czas naciskam przycisk przechodzi do innego ekranu gdzie widnieje temp. i pomiar napięcia. Następnie znów naciskam przycisk i przechodzi do kolejnego ekranu z wynikami pomiaru z dwóch innych...
Witam Mam problem z ultradźwiękowym miernikiem odległości na atmedze8. Generacja częstotliwości przebiega prawidłowo, na odbiorniku za torem wzmacniaczy otrzymuję widoczny syglał odbity od przeszkody. Błędy pojawiają się przy komparacji sygnału z napięciem referencyjnym. Wynik jest bardzo niedokładny, ponadto od drugiego bądź trzeciego pomiaru procesor...
Witam. Mam problem z prostym licznikiem impulsów 0-999 Otóż, po przekroczeniu wartości 255 cyfra setek wskakuje na 0 a dziesiątki i jedności liczą się dalej. Co może być nie tak? [syntax=vbnet] $regfile = "attiny2313.dat" ' 2KB FLASH|128B SRAM|128B EEPROM $crystal = 8000000 $hwstack = 40 $swstack = 8 $framesize = 24 Config Timer0 = Timer , Prescale...
Ostatnio pracuje w bascomie... Chce napisać prosty program pod atmega8, który będzie sterował 4 wyświetlaczami 7 segmentowymi.. program ma być licznikiem impulsów które mają być wyświetlane na wyświetlaczach... zastosowałem metodę multipleksy na tranzystorach BC327.. Moje pytanie.. co w kodzie poniżej jest źle ze program nie może skompilować: (błąd...
Witam. Mam problem z projektem licznika impulsów. Układ ma liczyć impulsy w "przód" i w "tył" i wyświetlać go na 4 wyświetlaczach led. Problem pojawia się wraz z przekroczeniem stu, dwa pierwsze wyświetlacze pokazują dziwne cyfry np. nie ma trójki tylko odwrócona szóstka. Dopiero zaczynam naukę w C nie wiem co jest źle. Proszę o pomoc. Poniżej zamieszczam...
Witam, próbowałem sobie napisać prosty programik do wyświetlania wartości napięcia z ADC5 na LCD, jednak nie wiem czemu wyświetla mi błąd: "error: called object '64' is not a function" #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/pgmspace.h> #include <stdio.h> #include "lcd.h"...
czesc mam taki projekcik obrotomierza. program wyglada tak: $crystal = 4000000 $regfile "m8def.dat" Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0 Set Portd.2 ' Miernik prędkości obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter...
Witam Jakiś czas temu zrobiłem sobie na w/w układzie termometr mierzący dwie temperatury do auta. Zdarza się czasem, iż po znaku stopnia celsjiusza pojawiają się jakieś literki. Załączam zdjęcie w celu ukazania problemu.Czy może to mieć związek z zakłóceniami na przewodach? http://obrazki.elektroda.pl/7197707500_1...
Witam. Jestem w czasie kompilacji programu do obsługi wyświetlacza LCD (hd44780), z przykładu z książki "AVR & ARM7 Programowanie mikrokontrolerów dla każdego" - Paweł Borkowski. Wszystko robię według instrukcji, a kompilator wywala mi następujący błąd: > "make.exe" all avr-gcc -g -Wall -Os -mmcu=atmega8 -c -o hd44780.o hd44780.c hd44780.c:62:22:...
mam problem ze zliczaniem a wlaściwie mnożeniem wartości. kluczowe fragmenty w kodzie niżej: Start Timer1 Waitms 500 Stop Timer1 A = Timer1 * 0.000167 Timer1 = 0 Odo = Odo + A Odo1 = Odo1 + A niby wszystko OK jednak po jednym impulsie ODO wynosci 0.0001669 a odo2 = 0.000152. blad jest potem powielany razy ilość impulsów wszyskie zmienne sa DIMowane...
Cześć, od pewnego czasu uczę się programować AVRy, moim kolejnym celem było opanowanie ADC gdzie posługiwałem się poradnikami pana Mirka Kardasia i napisałem(a właściwie to przepisałem) mój pierwszy program, z założenia miał on mrugać diodą z częstotliwością zależną od odczytu z ADC. Błędy które mi wyskakują:[syntax=text]:../main.c:28: error: conflicting...
Chce wyswietlic na wyswietlaczu LCD liczbe zmiennoprzecinkowa a wyswietla mi jakies glupoty. To program: while(1) { StartADC(); pomiar=14.3; unsigned char width=4; dtostrf(pomiar,width,2,lcd_buf); write_text(lcd_buf); waitms(40); write_command(0x01); } Program zamiast 14,3 na wyswietlaczu pokazuje...
Jeśli źle umieściłem temat to bardzo proszę o przeniesienie. Kod który wklejam : http://obrazki.elektroda.pl/7428430100_1...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Możesz zrobic tak - zliczać 11059 impulsów w liczniku 16-sto bitowym. Da Ci to częstotliwośći 10000,01 Hz czyli z błędęm w zasadzie do skorygowania kwarcem (kondensatorem, trymerem). Co do RS-a - to błąd całkowicie akceptowalny (dla skorygowanej do 11059000 Hz częstotliwości). P AK
Masz najnowszą wersję 2080? Czasem gdzieś się czai jakiś błąd i wtedy warto sobie zrobić taki ekspresowy kodzik który najpierw konfiguruje licznik a potem od razu odczytaj rejestry i sobie wyświetl w postaci binarnej. Można wtedy sprawdzić z notą czy wszystko ustawione tak jak powinno. Nie wszystkie tryby licznika da się do końca skonfigurować Bascomowymi...
Wyrzuć wszytkie operacje na porcie i na zmiennej licznik z pętli głównej - to jest przyczyną dwóch błędów, jakie masz w tym programie.
Ja zrozumiałem. Natomiast kolega wyraził się nieprecyzyjnie. Nawet tłumacząc mi błąd używacie zamiast flaga: licznik, stan itp. A to nie to samo. Albert
Na początek kwestia formalna: jest za dużo tabulatorów w kodzie przed komentarzami, przez to prawa strona posta oraz kodu jest ucinana na ekranie (mam mały ekran). Co do kodu: czytanie zegarka oraz formatowanie sprintfem w procedurze obsługi przerwania jest mocno słabe. Diabli wiedzą jak jest zrealizowany lib TWI. Jakby był oparty na przerwaniach to...
Czy ktoś może stosował taki układ, atmega i cooler od PC sterowany PWM. Chodzi mi o sam odczyt obrotów, niestety nie działa, softwareowo wszystko jest ok bo jak dam na licznik impulsy "ręcznie" (zwierając wejście licznika z masą) albo zliczając impulsy z PWM'a to wszystko działa ok. Obrotów coolera jednak nie zlicza. Próbowałem zasilać cooler ze stałego...
Witam, faktycznie też odpuszczam sobie tego freemodbusa, jednakże próbuję teraz napisać własną bibliotekę opartą ściśle na zasadach komunikacji Modbus czyli tak jakby własny modbus. Nie wiem jak poradzić sobie z odbiorem ramki po stronie slave, a dokładnie z detekcją faktycznego pierwszego znaku z nadanej ramki, tzn jak wykryć że odebrany znak jest...
Tutaj - zdarzenie wyzwalane w momencie zrównania się wartości licznika (TCNT2) z wartością w rejestrze Output Compare A (OC2A). Btw. w pierwszym wierszu tabeli jest błąd (OC0A zamiast OC2A).
Ja mam notę PDF do tego procka z 2004 roku i jest w niej wszystko OK ;) .... ale teraz aż z ciekawości zajrzałem do tej noty ze strony Atmela z roku 2010 i rzeczywiście jest "drobna" pomyłka - polega tylko i wyłącznie na tym, że w spisie treści opisany jest Timer2 a wszystkie informacje opisane dotyczą timera0 ;) .... i później opisany jest Timer0 a...
No bo na tym chyba polega idea PWM że nie liczy cały czas ode zera tylko do przodu i do tyłu. Jak chcesz otrzymać taki efekt to uruchamiasz w normalnmym trybie Timer i ładujesz do niego jakąś wartośc i zaznaczasz żeby odwracało Ci stan pinu przy przepełnieniu :P I do tego nie potzrebujesz PWM, a pwm liczy od dołu do góry i spowrotem :P Oczywiście mogę...
Zawody na orientacje polegają na znajdowaniu oznaczonych w terenie punktów kontrolnych na podstawie mapy dostarczonej przez organizatora. Zabronione jest używanie urządzeń GPS, przez co podstawą do nawigacji jest kompas i licznik odległości. Nawigując odmierzamy krótkie odcinki między punktami w terenie (np. od mostu do skrzyżowania ze ścieżką w lesie),...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Dobrze by było znać ustawienia jakie masz w IDE Bascom dla $Hwstack i $framesize Powinieneś je umieszczać w kodzie. Pobieżnie patrząc sprawdzasz prąd co ~8ms i jeśli jest zbyt duży to wyłączasz silnik i zwiększasz licznik błędu. W tej logice jest chyba jeden błąd. Kiedy silnik jest wyłączony to po kolejnych 8ms prąd nie jest już zbyt duży i licznik...
Dla małych kontrolerów, w stylu ATmega, z powolnymi zegarami, trzeba by chyba napisać kod w ASM, aby mieć kontrolę nad tym, ile taktów zegara zajmuje wywołanie przerwania, włączenie lub wyłączenie licznika, bądź też jego przeładowanie. Dostępne są tylko liczniki 16 bitowe, więc trzeba byłoby je regularnie przeładowywać i zapamiętywać ilość przeładowań,...
janbernat jak najbardziej cię rozumiem, jednak nie poruszam tu kwestii bezpieczeństwa, większość czasu sam operuję to windą więc zdaję sobie sprawę z zagrożeń, jednak też nie jestem bezmyślnym człowiekiem i teren wokół windy zawsze mam zabezpieczony na całej linii, na dole zawsze są tablice ostrzegawcze i bariery dla osób postronnych, jednak wypadki...
jak mi się wydaje No to nie wiesz po zmianie czego program zaczął działać poprawnie? ;) Mam teraz pytanie. Ze względu, że dostaje kilka ramek jak zapisać do zmiennej: $GPGGA ? Chcę zrobić odczyt od łańcucha $GPGGA aż do 14 znalezionego przecinka po $GPGGA? Do stosowania strtok() taki bufor może okazać się za mały. W prawdzie jest to jakieś rozwiązanie,...
Ja użyłem do kalibracji termometru z licznika rowerowego (dokładność 1st.C) i wpisałem kod autora forum atom1477 i LCD pokazuje mi temp. z dokładnością do 0,5stC. Dla mnie błąd 1stC czujnika jest dopuszczalny.
Szukaj hasła "charlieplexing", to znajdziesz. Nie trzeba żadnych dodatkowych elementów, zwłaszcza kiedy masz zapalić tylko jedną z diod (gdybyś chciał równocześnie świecić kilkoma, to już nie jest takie proste, jak to pokazują na obrazkach, bo trzeba walczyć ze zmianami jasności). Za to w Twoich założeniach jest jeden istotny błąd - wyświetlacz LCD...
Witam, planuje wykonanie sterownika w wersji 5.2 (bez PH, taki mi wystarczy w zupełności). Chciałbym do Skalara podpiąć także karmnik który już mam i tu moje pytanie: jak mógłbym to zrobić? Z tego co się dowiedziałem to da się włączać wyjścia sterujące na co najmniej minutę - ja bym potrzebował albo jeden impuls który zwarł by switch karmnika, albo...
a ustawiłeś Fuse Bity?? Bo jeśli nie masz ustawionych to ATmega pracuje z częstotliwością 1MHz. Musisz ustawić Fusy na albo 8MHz na wewnętrznym generatorze albo ustawić Fusy na zewnętrzny kwarc. i mniej więcej kod by tak wyglądał: $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1...
Hej. Po pierwsze Timer0 w atmedze8 nie ma PWM A więc do PWM możesz korzystać tylko z Timera 1 oraz Timera 2. Po drugie twój problem leży w nazwach poszczególnych rejestrów konfiguracyjnych atmegi 8 sprawdź w dokumentacji atmegi8 jak w rzeczywistości nazywają się rejestry TCCR0A, TCCR0B, OCR0A bo tego dotyczy komunikat błedu. Poza tym pamiętaj że port...
A ja myślę, że należy wpisać wartość do OCR1A = 15624.Prescaler = 256. Nie wykluczając swojej pomyłki...czemu kolega tak wnosi? Mnie z dzielenia 8MHz przez 256 wychodzi 31250 czyli tyle impulsów należy zliczyć by uzyskać przerwanie co 1s. Uwzględniwszy stan 0 licznika mnie wychodzi, że do rejestru OCR1A należy wpisać 31249. Gdzie popełniam błąd?
Przepraszam że nie odpisuje ale mam sporo pracy. Przyjrzałem się programowi widzę że za dużo rzeczy robisz w przerwaniu od INT2. Procedurę "Oblicz" przerzuć do pętli głównej, uwarunkuj wejście do niej tym że nastąpiło przerwanie od INT2. Na koniec procedury "Oblicz" skasuj flagę od wejścia w przerwanie od INT2 i trzeba przeniesc tam zerowanie flagi...
W ATMEGA808 (zapewne w innych nowych też występujący) wychwyciłem błąd związany z zachowaniem się RTC po wybudzeniu z uśpienia STANDBY. Mam kod, który w przerwaniu od pinu odczytuje zawartość RTC_CNT. RTC oczywiście ustawiony w trybie RUNSTDBY. Odczyt CNT odbywa się zaraz na początku obsługi przerwania. Okazuje się, że raz na kilkanaście odczytów wartość...
Witam, pisze program w którym wykorzystuję 16 bitowy Timer1 z Atmegi 328. Najpierw konfiguruję go tak: [syntax=vbnet]Config Timer1 = Timer , Prescale = 64 'Kwarc 18.43MHz, 1/18430000 * 64 = 3.473us Enable Timer1 On Timer1 Impulsuj 'ISR[/syntax] a potem mam procedurę przerwania której zadaniem testowym jest wygenerować przebieg prostokątny: [syntax=vbnet]'---------------------ISR....
Witam. cyt: zapomnialem zmienic w programie kwarc z 1 MHz na 8MHz ;/ i to bylo wina tego No to w takim razie zupełnie nie rozumiem - przerwania masz generowane co 1s, niezależnie od tego czy masz napisane $crystal=1000000 czy też $crystal=8000000 Chyba, że zmieniałeś wartość preskalera lub wartość wpisywaną do licznika. Czy możesz jaśniej opisać przyczynę...
Jeśli ten diesel to stary kibel z full mechanika bez ECU to robienie takiego kompa to czysta abstrakcja jak pomyśle jak zachowuje się wskaźnik paliwa w moim samochodzie gdzie przy ostrym hamowaniu sporo przysiada a przy przyśpieszaniu się podnosi... Twój błąd pomiarowy to gdzieś ok 2-3l na 100km łatwiej już zerować licznik co tankowanie i samemu sobie...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Atmega 162 nie ma przetwornika ADC o ile pamiętam Dobrze pamiętasz. A z licznikami zawsze można sobie poradzić. Ich ilość jest prawie nieskończona (ja wykorzystuje ich około 10 w swoim ostatnim projekcie). Zrealizowane oczywiście softwarowo
Licznikiem CD 4017 może sterować procesor . Jakby zmienił na Atmega 8 ,a ma dość wyprowadzeń. To w jak funkcjonować i wyglądać program który będzie miał 8 wyjść , 8 wejść i diody sygnalizacyjne , OK i Błąd , oraz diodę trwania testu . i przyciski
mały błąd, myślałem że w danej chwili tylko 1 timer może przyjmować sygnały zewnętrzne. W takim razie pozostaje mi wykorzystać 3 timer do odmierzania okresu czasu. Zastanawia mnie jeszcze rozwiązanie z rejestrami ICP/(Input Caputre Unit?) Nie wiem czy dobrze to rozumiem: narastające zbocze sygnału podane na nóżkę ICP uruchamia timer, opadające go zatrzymuje....
Te dziwne rzeczy o których piszesz w swoich postach, to po prostu efekt pisania blokujących się programów. Otóż odpalając funkcję _delay() na okres czasu jaki ma odmierzyć, zatrzymujesz procesor, który wtedy mieli bezproduktywnie w kółko, nie robiąc nic poza tym. Do tego, jeśli nie wyłączysz przerwań na czas wejścia w _delay(), przerwania przerywają...
Witam! Zrobiłem sobie układ oparty o uP ATmega 8L (taktowany wew 1MHz). Procesor ma wysyłać i odbierć dane po łączu szeregowym USART. O ile z wysyłaniem nie ma problemu (zawsze wysyłane są jednorazowo 2 bajty) o tyle sprawa komplikuje się przy odbiorze danych. Dane "dochodzące" do uP nie mają stałej długości (czasami są to 4 bajty, czasami 10 itd)....
Wg. mnie te 4 takty obejmują również czas wykonania przerywanego rozkazu. Przynajmniej tak pokazuje symulator w AVR Studio. Oczywiście jeżeli przerywamy rozkaz dwucyklowy (np SBI) to opóźnienie wyniesie 5 taktów. Jeszcze dla pełnej poprawności to piszesz o ATEMGA16 i ATMEGA644P więc Twój przykładowy program zawiera błędy: - dla ATMEGA rejestry Timera...
http://obrazki.elektroda.pl/2314562400_1... Witam. Początkiem roku kolega poprosił mnie o zrobienie licznika (miernika) częstotliwości. W necie jest sporo przykładów. Na węgierskiej stronie znalazłem odpowiadający memu koledze. Układ dość prosty. Są zdjęcia, PCB, wsad do procesora. Zrobiłem płytkę, a nawet trzy. Może się przydać. Drobnica...
No fakt ;) jeden rząd wielkości się pomyliłem. No i faktycznie jest w dokumentacji, bo moja wspaniałomyślna książka o AVRach ma te same tabele co w dokumentacji ale się na 250kb kończy. W dokumentacji elegancko wychodzi. Wsadzę 16Mhz. Pomiędzy FT232 a Atmega wsadzę 6N137 bo chcę mieć izolację pomiędzy tymi układami, myślę że powinno działać. Teraz jeszcze...
przestawiłem int TCCR1A= (0<<COM1A0), (0<<COM1A1), (0<<COM1B0), (1<<COM1B1), (0<<FOC1A) , (0<<FOC1B) , (0<<WGM11) , (0<<WGM10); TCCR1B =(0<<ICNC1), (0<<ICES1), (1<<WGM13), (0<<WGM12),...
Oczywiście że tak! A tyle razy czytałem pdf'a.... Drugi błąd tkwi w zapisie 10sek do adresu 15. Pamiętałem wszędzie o BCD zapominając, że powinno być nie 10 a 16 (B00010000). Czyli reasumując: zapis ustawień timera adres 0 <- 4 (ustawiony bit 3 włącza timer) adres 7 <- 0 (zerowanie na wszelki wypadek licznika - tu układ zlicza sobie impulsy) adres...
Cześć Mirekk36 Jak widzę jesteś empirystą i człowiekiem z doświadczeniem więc: 1. Stwórz w Atmedze licznik odczytów czasu z PCF - ile to jest w jakimś dłuższym okresie; 2. Stwórz licznik ilości resetów Atmegi w tym samym okresie, i jeśli to możliwe zapis momentu wystąpienia resetu :) 3. Analizuj poprawność odczytu z PCF np. za pomocą porównania odczytanych...
Kolejny raz sprawdziło się, że wieczorem to lepiej dać sobie na spokój niż męczyć się, bo i tak z tego nic nie wyjdzie. Rano samo przyjdzie:). Problem leżał w złym założeniu że przerwanie z INT0 pojawia się na początku pierwszego bitu startu. INT0 ustawione jest na reagowanie na zbocze opadające czyli "1" która pojawia się w połowie pierwszego bitu...
Nie da się dokładnie zrobić opóźnienia 1us na tym kwarcu. Błąd będzie mikroskopijny ale będzie. Najłatwiej takie opóźnienie zrobić dając 11 nopów. Oczywiście dla kwarcu 11.0592 MHz też to zrobisz. Wystarczy licznik timer0, prescaler = 64. Po zliczeniu 675 razy będziesz miał 1 sekundę. Ale ta jedna sekunda jest zależna od warunków w jakich przebywa...
atmega błędy błędy licznika focus tester atmega błędy
instalacja elektrozaczepu naprawa wtrysk kable zapłonowe pandy
fluktuacja sygnału regulator ciągu odkurzacza
Magnes w młynku do kawy Saeco - funkcja i działanie Bezpieczniki i przekaźniki w Mercedesie W168