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)...
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...
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...
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),...
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...
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ń,...
Jacy programiści? Ze szkolnej ławki? Publikacje, książki, noty katalogowe, nigdzie nie widziałem tam użycia terminu flaga dla licznika. To, że ktoś niedouczony myli pojęcia to nie powód, żeby przyjąć błędy za prawdę. Pokaż mi np. w MSDN Microsoftowym chociaż jeden przykład użycia terminu flaga dla określenia czegokolwiek innego niż naprawdę to znaczy.
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...
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...
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)....
Twój program można wykorzystać do celów akademickich: "znajdź co najmniej 10 błędów w tym kodzie".
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...
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,...
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ą...
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),...
Programator jak i kompilator BASCOM nie należy do szcztowych osiągnięć w tej dziedzinie. Ponieważ część programów i komend korzysta z tych samych peryferii np liczników itp wykorzystanie ich razem w bardziej złożonych aplikacjach kończy sie klapą . Programowanie ISP wymaga ustawienia pewnych parametrów i w wielu przypadkach działa tylko raz . Dla profesjonalnej...
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ę...
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...
Oki $tiny rozwialo sprawe ze zmiennymi. Rozwiało :?: , zapewne Twoją czuprynę :D Po pierwsze , coś kręcisz , bo nawet takie cuś nie da się skompilować dla ATMega8515 :!: $regfile = "m8515.DAT" Config Timer0 = Pwm , Pwm = 8 , Compareb Pwm = Clear Down , Comparea Pwm = Disconnect , Prescale = 64 A nie da się również na wiele innych proców ,...
W takim razie chciałbym się jeszcze zapytać ciebie I-light o jedną sprawę, bo z noty katalogowej nie mogę doczytać. Mianowicie wszystkie pwm'y ustawione są w 8-bitowym trybie fast pwm, inverted mode. Oznacza to że licznik liczy od zera do wartości 0xFF, resetuje się i liczy od nowa. Z każdym krokiem porównywana jest wartość licznika z wartością rejestru...
Dziękuję kolegom za odpowiedzi. Pomijając fakt, że może wkradły się jakieś błędy w składni, czy brak jakichś nawiasów, to pisząc ten kawałek przykładowego kodu miałem w zamyśle, że mógłby on działać na takiej zasadzie, że: Zakładam, że np. adc przekroczyło wartość 500, oraz temp_1 przekroczyło 30, to wówczas powinny się wykonać działania nr1 i nr2....
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
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...
U mnie kompiluje . Jakie błędy wyświetla ? Pzdr.
Dzięki za komplement "młody ludź" :) wracając do xmegi zainstalowałem AtmelStudio 6.0 i bawię się w mruganie leda. Wkleiłem gdzieś tu z Elektrody taki kod przerwania od timera ale pojawiają się błędy. Proszę na przyszłość używać tagu ] do wklejania kodu... /syntax] . Poprawiłem, LordBlick [syntax=C]#include <avr/io.h> ISR(TCC0_OVF_vect){//test...
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...
Hej, czy to twoje rozwiązanie nie spowoduje tego, ze tak naprawdę pomiędzy impulsami na kolejnych wyjściach rejestru będę miał przerwy wynikające z wpisów w OC1A (zegar będzie przecież liczył mnie tylko do 2ms, ale do 4ms..... pozdrawiam krzysiek Proszę poprawić błędy w pisowni w całym temacie - regulamin p.15
Witam wszystkich bardzo serdecznie. Mam problem z obsługą timera, nie wiem czy dobrze mam napisany kod, bo działa nie tak jakbym chciał. Mianowicie chciałbym generować przerwanie co 100ms i wykonywać pomiary na dwóch kanałach ADC i wyświetlać wyniki na ekranie terminala w PC.. Na początku udało mi się obsłużyć timer0 i wszystko działało prawidłowo,...
Uzyskana w ten sposób informacja o zmianie temperatury jest bardzo przydatna, na jej podstawie można zrobić naprzykład kompensację temperaturową całego urządzienia. Czy w Atmega i Atiny da sie peryferia (liczniki, ADC, ...) zasilać z DCO podczas gdy CPU chodzi z kwarcu? I tu pojawia się mały problem bo niestety CPU i peryferia są taktowane z jednego...
Rozumiem że kolega za głupie uważa przykład o analizie poprawności działania kodu oraz eliminacji błędów w sprzęcie poprzez banalne mruganie diodami. Jeśli Twoja godność ucierpiała biję się w pierś i przepraszam. Muszę jednak stwierdzić że wszelkie błędy aliminuje się raczej małymi krokami a nie hurtem jak leci. Odpalanie prototypu z żadka kończy się...
Oto cały kod: Dodano po 8 Takie błędy generuje: led.c:19: warning: suggest parentheses around arithmetic in operand of | led.c:21: warning: suggest parentheses around arithmetic in operand of | led.c: At top level: led.c:25: warning: function declaration isn't a prototype led.c:31: warning: function declaration isn't a prototype led.c:48: warning: function...
Straszne pomyłki wkradły się do mojego kodu, na raptem 3 linijki 2 błędy :cry:. Wracając do tematu podany przez Ciebie kod wygląda dokładnie tak jak chciałem. W jego efekcie uP miał naliczać do 14, nastepnie zerowanie licznika i zmiana stanu wyjscia PB3 na przeciwny. I tak w kółko. Z moich obliczeń powinnienem otrzymac sygnał prostokatny o f=36kHz....
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ń...
Czemu nie działa jakieś błedy kompilatora, jak nie tak to może źle napisany kod i się przy większej optymalizacji wysypuje. Jak coś to wrzuć kod nie działający. Heh, no ok, wrzucam więc kod. Od razu jednak uprzedzam, że to jest mój pierwszy program w C i mogą występować rażące programistów błędy. Poza tym kod jest nieco rozlazły - dla mnie bardziej...
No tu już nie mogę zdzierżyć :wink: Chcesz korzystać z przerwań od 2 timerów i dziwisz się ,że wchodzą w paradę transmisji 1wire.Te timery to będą nawet sobie wchodzić w paradę , jeśli ich praca nie będzie jakoś zsynchronizowana.Trzeba poprostu "widzieć" oczami wyobraźni pracę programu i tak go skonstruować by działał prawidłowo , lub potrafił się skorygować...
Częstotliwość zależy od zegara, preskalera oraz wartości wpisanej do timera. Po za tym błędy: Kod: $crystal="8000000" load timer0,1 Błędem jest deklaracja częstotliwości zegara,czy ładowanie wartości 255 do timera0? Wiem jak działają liczniki w AVR ,wiem także od czego zależy częstotliwość. Wytłumacz mi tylko dlaczego przy zegarze 8MHz ,preskalerze...
Dzięki za pomoc panowie. Napisałem od nowa program na innym timerze i ruszyło, wyskalowałem sobie to jak chciałem i git. Potem dodałem drugi potencjometr na inne wejście i zdefiniowałem drugi timer - tym razem chcę pwm o wypełnieniu z zakresu 6-27%. Generalnie mi się to udało mniej więcej obliczyć i zaimplementować. Ale pojawił się problem z pomiarem...
Witam pisze program do obsługi 2 silników dc poprzez avr atmega16 + rs232, mam pytanie odnośnie tego programu mianowicie: Przy obsłudze rs232 poprzez uarta 1. Linie portu RXD (PD0) ustawiamy jako wejście w jakim stanie wysokim czy niskim ? 2. Linie portu TXD (PD1) ustawiamy jako wyjście w jakim stanie wysokim czy niskim ? Czy modulacja pwm jest dobrze...
Witam wszystkich! Pewnie pomyślicie "znowu to samo", no ale zlitujcie się w Wigilię i przeczytajcie te kilka zdań :D Walczę z problemem od kilku dni. Nie potrafię skonfigurować Timera by konwertował dane z 1wire poza główną pętlą. Nie mogę sobie pozwolić na waitms, bo wtedy mam problemy z poruszaniem się w menu. Mam już działający Timer1 odliczający...
Mam problem z tym kodem (napisany przeze mnie więc przepraszam za ewentualne błędy estetyczne): /* 1.Przyłóż czarny. 2.Naciśnij przycisk 1. 3.Przyłoż biały. 4.Naciśnij przycisk 1. 5.Jeśli chcesz skalibrować naciśnij przycisk 2. */ #include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> #include <avr/sleep.h> #define LED1_ON...
Jezeli ustawisz na 230 to masz 26 taktów na wykonanie przerwania, zakladam ze preskaler 't0' ustawiony na 1/1. Czyli słusznei podejrzewasz ze sie procek niewyrabia, ale to ty mu dajesz w kość bo wychodzi na to z przerwanie od licznika T0 przychodzi Fosc/26=..... podlicz i zobaczysz co wyjdzie.
Po co ci ten timer, skoro nadal nie wykorzystujesz jego przerwań?.. Ten kod ma błędy - pierwszy z nich to zawartość zmiennej "impulsy". Co ten timer ma robić według ciebie? Albo nim zliczasz impulsy które przychodzą z zewnątrz (impuls co ząb) i wtedy użyć innego timera do odmierzania czasu (wynikiem jest liczba o jednostce Wywoływanie funkcji typu lcd()...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
Krauser EPROM nie jest używany podczas ustawiania temperatury tylko przy wychodzeniu z funkcji tzn przyciśnięciu 2 przycisków na raz ale żeby mi nikt nie zarzucił uruchomiłem i bez EPROM ta sama sytuacja. Przeniosłem funkcje sendLED do funkcji przerwania teraz to wygląda tak : [syntax=c]ISR(TIMER0_OVF_vect) { TCNT0 = 210; static uint8_t licznik=1;...
Witam. Napisałem następujące podprogramy: .EQU POCZATEK_PROGRAMU_H = 0x00 .EQU POCZATEK_PROGRAMU_L = 0x90 .EQUPROGRAM_WSK_H= $60 .EQUPROGRAM_WSK_L= $61 PROGRAMOWANIE_: CLI;blokada przerwania LDI R20, KOM_BRAK_ROZKAZU // kasowanie rozkazu LDS XH, PROGRAM_WSK_H ;pobranie aktualnego adresu wskaznika programu LDS XL, PROGRAM_WSK_L KOM_PROG_: WDR;zerowanie...
Witam, Napisałem programik na atmega8 do sterowania multipleksowego 4 cyfrowego LEDa z użyciem 74HCT164. Multiplekcowanie odbywa sie po przepełnieniu licznika timer0. Program multipleksowania bierze z pętli głównej wartości zmiennych A,B,C odpowiadające dziesietnym, jednostkom i dziesiatkom i ma je wyświetlać. Do ustawiania tych zmiennych w pętli głównej...
Witam Mam banalny program, po włączaniu zasilania startuje licznik czasu, program prawie działa nie do końca dobrze. Atmega8 steruje wyświetlaczem LED (segmenty) z portu D, poszczególne cyfry od najbardziej znaczącej W4,W3,W2,W1 sterowane z portu B, z portu B jest też sterowanie jasnością wyświetlaczy (PWM) i buzerem. Ogólnie licznik liczy ale buzer...
http://obrazki.elektroda.pl/9377221800_1... W dziale mikrokontrolery ARM znajdziecie bezpłatny (do osobistego użytku edukacyjnego) poradnik STM32 przygotowany przez szczywronek . Materiał dostępny jest w temacie: techekspert: Do kogo kierowany jest poradnik, jakie podstawy powinien mieć opanowane czytelnik? Czy znajomość określonej...
Powiedzcie chociaż czy dobrze konfiguruje timer, aby działał w trybie licznika. Czy czegoś nie pominąłem, a jeśli są błędy to powiedzcie jakie. Jak ustawić rejestry aby licznik dawał sobie rade ze zliczaniem 360*2500 impulsów na minute. Jak na razie program pisany jest dla atmegi 8 ale docelowo będzie dla atmegi 1280. Ostatnio zmieniła sie koncepcja...
witam dopiero uczę się programowć avry. chciałem pobawić się w sterowanie serwa modelarskiego na atmega8 i tu od razu zonk. program wykorzystuje timer0, procesor działa na wew. oscylatorze 8MHz. generalnie to na wyjsciu miala sie pojawiac fala prostokątna H=1,5ms L=18,5ms ale serwo osiąga tylko jedną skrajną pozycję i koniec. kod jest poniżej, czy widać...
Cześć, witajcie. uruchomiłem komunikację dwóch atmeg po spi. w bascomie z pominięciem wbudowanych komend, tylko na rejestrach procesora. hardwarowo wszystko chodzi, dane sie przesyłają w obie strony z jednym dużym problemem. drugi dzień nad tym siedzę i mam już kwadratowy łeb. potrzebuję przesyłać tabele, których specyfika jest taka, że nigdy nie wystąpią...
Dzięki za kalkulator i wyjaśnienie Napisałem kod z timer1 do odmierzania odcinków czasu po 10 sekund. 10 sekund świeci led i następne 10 sekund nie świeci i tak w kółko. Oto kod: ...................... Jaki błąd popełniłem w tym kodzie? ............ Ale taki sam efekt. Przecież początkowa wartość licznika to 55771, końcowa 65536. Po 9765 krokach ma...
W języku c wszystkie instrukcje poza deklaracjami i definicjami muszą się znajdować w jakiejś funkcji, a u Ciebie są tak luzem, i pewnie dla tego te błędy. Kolejny błąd pojawia się z powodu braku średnika na końcu pierwszej linii w funkcji main(). Mając taktowanie o wartości 1MHz musimy je podzielić przez 1000 aby uzyskać 1 kHz, jak ustawisz preskaler...
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...
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.
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...
Kol. Roko . Częściowo takie rzeczy pojawiły się już w polskiej pomocy do BASCOM-a On-Line. Obecnie jest jednak ona czasowo niedostępna. Przykład: BASCOM AVR - Tworzenie programu W trakcie edycji (...) Jak nie pisać programów. Dość często podczas przeglądania programów udostępnionych przez inne osoby da się zauważyć pewne charakterystyczne i powtarzane...
Błędy dotyczą składni, czy uruchomienia i zatrzymania timera(wpisów do rejestru)? Błąd składni to nie jest, bo nie skompilował by Ci się kod. To są błędy logiczne. Pierwszy dotyczy braku nawiasów klamrowych. Przy takim zapisie (statystycznie rzecz ujmując) zgubisz od czasu do czasu fakt ustawienia flagi na jeden. Drugi dotyczy braku nawiasów () w połączeniu...
Witam, ostatnio zająłem się pisaniem stosunkowo prostej aplikacji na AVR ATmega8, potrzebnej mi na studia. Na celu miałem też trochę lepsze poznanie AVR. W czym problem : W moim programie chciałem przetestować typowe zachowanie uC, napisałem kilka prostych funkcji, włączyłem przerwania, zrobiłem pętle nieskończoną w której na moim wyświetlaczu 7 segmentowym...
założona na początku wartość 22336 odnosi się wyłącznie do taktowania 8MHz. Właśnie wartość licznika 22336 odnosi się do taktowania 11.0592 MHz, bo nie wiedziałem co jeszcze tam zmienić i zmieniłem tylko $crystal=11059200 na 8000000 nie ingerując w dalszą część kodu pod względem taktowania. Jest na to jakiś ogólny wzór, żeby to wyliczyć? 1. Nie ma...
Atmega88 nie ma takich w ogole rejestrow: TIMSK, TCCR0! Ten kod jest poprawny. #include <avr/io.h> #include <avr/interrupt.h> #define TIMER0_INIT 175 char i; // procedura obsługi przerwania od timera TC0 SIGNAL (SIG_OVERFLOW0) { TCNT0 = TIMER0_INIT; // załadowanie do licznika wartosci poczštkowej PORTB ^= (1<<PB1);...
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,...
Pomiar zaczyna pulsować . Troszkę za dużo wrzuciłem programu . Wystarczyło przerwanie od licznika PWM . Jeżeli chodzi o długość przerwania to może błędnie myślałem , że lepiej jedno dłuższe niż kilka krótszych . Spróbuje zastosować przerwanie od przetwornika ac .Ile pomiarów najlepiej zrobić i jak rozwiązać rzutowanie zmiennych int na char ? Na początku...
Stworzyłem następny program. Położenie serva jest zmieniane za pomocą dwóch przycisków pilota RC5. Oto on: 'Jedno servo sterowane pilotem, 60 kroków $regfile = "m8def.dat" $crystal = 10000000 Config Pinb.0 = Output Config Int0 = Low Level Config Rc5 = Pind.2 Config Servos = 1 , Servo1 = Portb.0 , Reload = 10 On Int0 Pobr_rc5 Dim Address As Byte , Command...
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...
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, mam następujący algorytm: short output; main() { int i; const short A=0x7e66; /* A=(1.975/2 * 32768) */ short y no i mam sie nim posłużyć przy generowaniu sygnału sinusoidalnego z mikrokontrolera ATMega8. Wrzuciłem więc tak: int i; const char A=125; /* A=(1.975/2 * 255) */ char y i dzieją się cuda, a nie sinusoida. Pomoże ktoś?
A wiec juz pisze więcej szczegolów otoz po pierwsze ingerowanie w budowe enkodera nie jest mozliwe bo jest to nowy enkoder szczelnie zamkniety i raczej nierozbieralny. Teraz odpowiedzi na reszte postow: Silnik jest stabilnie przytwierdzony do podloza nie mniej jednak generuje drgania. jest to silniczek krokowy 2-fazowy bipolarny o oznaczeniu KP56LLM2-553...
https://obrazki.elektroda.pl/7186671300_... Od kilku lat programuję 8-bitowe mikrokontrolery AVR i przez ten czas zdobyłem trochę wiedzy na ich temat. Poniżej znajduje się kilka ciekawostek o tych układach. Jeśli znacie jakieś inne interesujące informacje, to piszcie. Najnowsza wersja artykułu jest również dostępna na mojej stronie:...
Jeśli źle umieściłem temat to bardzo proszę o przeniesienie. Kod który wklejam : http://obrazki.elektroda.pl/7428430100_1...
Witam Chce stworzyć prosty analizator widma oparty na ATmedze oraz wyświetlaczu LCD HD44780. Płytkę z filtrami stworzyłem wcześniej i przebadałem oscyloskopem i wszystko działa jak należy. Problemy zaczęły się dopiero przy programowaniu procesora. Poradziłem sobie z obsługą wyświetlacza i, z pomocą forumowiczów, z obsługą ADC. Mam teraz problem z przerwaniem....
Pochwal się postępem. Prego. Stan obecny jest taki, że rurki polutowane, przecieki usunięte ;-) pompy i grzałki podłączone prowizorycznie do testów, które już trwają kilka dni. Już po tych kilku dniach jednak widzę, że koncepcja jest OK, układ działa sprawnie i wydajnie. Niby to tylko 4,5 kW (3x 1,5), ale daje radę nagrzać 180 litrów wody (100 l w...
Vef dla ADC w Xmega to min. 1.0V. Jeżeli pracujesz na granicy to zawsze będą większe błędy. Na Forum wiele razy już o tym było. Optymalne napięcie odniesienia to 2.5V. Typowe, łatwo dostępne i łatwe w implementacji. W Twoim programie nie widać pełnej konfiguracji ADC. Nie wiem w jakim trybie dokonuje pomiarów, w którą stronę wyrównuje wynik, ani z jakim...
Udało mi się połączyć kod, i dopasować preskalery do Atmegi ale podczas kompilacji napotykam błędy których kompilator nie może dokładnie określić prosiłbym o sprawdzenie całości i ewentualne poprawki [syntax=c]//Sterownik wytrawiarki PCB, LCD2x16, ds18b20 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h>...
Witam jestem początkujący w programowaniu i mam taki problem, że po załadowaniu pliku na przykład prosty stoper: [syntax=basic4gl][/syntax ... Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit...
tak wyglądają błędy podczas kompilacji http://obrazki.elektroda.pl/3063708300_1... tu natomiast wklejam kod który pozmieniałem, a nie wiem czy dobrze ; Prosty program boot loader-a dla interfejsu RS-232 ; Rafał Baranowski (C) 2004 //**************************************... /* * Modyfikacja programu...
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?
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).
https://obrazki.elektroda.pl/6692889600_... Od jakiegoś czasu czułem potrzebę sterowania komputerem za pomocą niestandardowej klawiatury. W wielu przypadkach, takich, jak emulatory starych komputerów i sterowanie urządzeniami za pomocą klawiatury, można przypisać funkcję programu do klawisza na klawiaturze. Na przykład komputer ZX...
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"...
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 )...
Prosze o słowa krytyki , to mój pierwszy program wiec błędy napewno są . Sprawdzałem na płycie evb i działa według założenia. [syntax=basic4gl] ' program sprawdzałem na płycie evb i działa . ' $sim $regfile = "m32def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5...
No prawie dobrze, tylko: - rx_counter może mieć wartość 0 kiedy w buforze są dane, nie można więc na jego podstawie decydować o czymkolwiek. - Jeśli błąd może się zdarzyć, to kiedyś się zdarzy. Nieważne, przez ile godzin programowi udało się pracować bez błędu. Nawet jeśli protokół transmisji gwarantuje, że bufor się nie przepełni, nic nie gwarantuje,...
Witam serdecznie! Na wstępie powiem że procesor atmega nie widzę pierwszy raz, jednak pierwszy raz zabrałem się za programowanie Atmegi32 i właściwie można powiedzieć że to mój "pierwszy poważny raz". Pomysł wziął się stąd że zapragnąłem posiadać fabrycznego pilota sterowania radia z pod kierownicy w Renault Clio II ph 2 1.2 8V (notabene bardzo ekonomiczne...
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ę...
Witam, zlozylem sobie ten uklad, edytowalem program tak aby wpisac swoje numery tel. i nie moge uruchomic tego ukladu, narazie bazuje na pierwszej wersji programu od Xury'iego i jego schemacie, moze ktos mi powiedziec czy ten program powinien wystartowac? Rem Projekt powiadomienia o alarmie by Xury '$sim 'dla symulacji $regfile = "m8def.dat"...
Nadajnik (xmega 128a3, TRYB = 1): [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <string.h> #include <avr/pgmspace.h> #include <stdbool.h> #include "SPI.h" #include "nRF24L01.h" #include "nRF24L01_memory_map.h" #include "twi_master_driver.h" #include...
https://obrazki.elektroda.pl/5711684100_... Witajcie, przedstawię tu sterownik mikroprocesorowy "Pralma Kielce" z pralni, przeanalizuję jego budowę oraz naszkicuję jego schemat. Sterownik ten, jak można się domyśleć, pochodzi z przemysłowej pralki 15kg i pozwalał wybrać na niej m. in. jeden z programów prania, określić wirowanie, tryb...
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.
:arrow: LighHouser: Mniej więcej o taki układ chodziło. Tylko, że zamiast 74138 albo rejestr 74574 lub 8-bitowy port wyjściowy z mikrokontrolera. No i przy zastosowaniu lepszych LED 7404 nie wystarczy. Potrzebny jest mocniejszy (dużo mocniejszy) driver. No cóż ja tylko taki schemat "wyguglałem". Postanowiłem go jednak trochę udoskonalić do łatwego...
Z jednej strony masz rację, a z drugiej nie... Mianowicie masz rację pisząc, że większość budowanych amatorskich konstrukcji da się zastąpić chińskimi odpowiednikami za niewielką cenę, natomiast budując układ samemu można nauczyć się wiele. Dla mnie budowa tego układu pomogła nauczyć się zasady działania kodu RC5 (bo kod pisałem w pełni samodzielnie...
http://obrazki.elektroda.net/94_12891659... Witam, własną konstrukcję prezentuje na elektrodzie po raz pierwszy, jestem otwarty na wasze opinie, pomysł na konstrukcję miałem już dawno temu, kupiłem wyświetlacze, jeszcze w szkole zrobiłem płytkę pod wyświetlacz (co zresztą widać) ale późnej zabrakło i wiedzy i chęci. No i ostatnio zafascynowany...
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...
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...
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...
http://obrazki.elektroda.pl/4758191500_1... Po kilku miesiącach pracy wreszcie jest! Teraz możecie pytać, która godzina! Pomysł projektu powstał, kiedy przez cztery dni autor podróżował po kraju. Kody QR są bardzo popularne z wielu powodów. Sprzedawcy uznają, że są one bardzo praktyczne i żądają umieszczania ich wszędzie, gdzie się...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
Witam, Od razu mówię, że jestem amatorem w elektronice. Zrobiłam płytkę z atmegą 8, sterownikiem ULN2803 i silnikiem krokowym unipolarnym. Silnik po wgraniu początkowe programu obracał się. Teraz jedynie drga. Mój kod ma na celu zaczęcie obracania silniczkiem i liczenia kroków, gdy wcisnę guzik (PINC2) silnik ma zacząć się obracać w drugą stronę z tą...
Witam Mam problem z uruchomieniem timera w Atmel Studio 7, program przeznaczony jest dla procesora xmega128a3u Mam załadowane następujące biblioteki: [syntax=c]#define F_CPU 2000000UL #iinclude <util/delay.h> #include nclude <avr/io.h> #<avr/interrupt.h> uint8_t licznik = 0; [/syntax] i poniżej definiuje ustawienia timera [syntax=c]TCC0.PER...
błędy licznika focus tester atmega błędy start licznika atmega
kolory kabli audio płyta indukcyjna budowa haier inverter
samsung rl33eams peugeot światła cofania
Plan instalacji elektrycznej motorówki – normy ISO, LiFePO₄, Victron, ochrona przed korozją VW Beetle 2008 1.6 MPI benzyna – samoczynne podnoszenie obrotów na biegu jałowym