Witam, Napisałem program, który docelowo miał odbierać dane z komputera przez modem BT HC-05 interfejsem UART oraz potwierdzać odebranie danej, oraz wysyłać dane z ADC jeśli przyciśnięty zostanie przycisk (w rzeczywistości jest to wycinek pewnego programu, więc niektóre zmienne etc. mogą być bez sensu). Odczyt ADC wykonuję wykorzystując przerwania capture...
Witam, Dodałem do swojego programu funkcję sprintf i mam problem z skompilowaniem programu. 18:09:16 **** Incremental Build of configuration Release for project timer **** make all Building target: timer.elf Invoking: AVR C Linker avr-gcc -Wl,-Map,timer.map -mmcu=atmega8 -o "timer.elf" ./ds18b20.o ./lcd.o ./main.o /usr/local/CrossPack-AVR-20130212/lib/gc...
Witam serdecznie, chcę taktować timer Atmega8 zewnętrznym kwarcem zegarkowym, a sam uC taktować wewnętrznym oscylatorem RC. Tylko nie wiem jak mam skonfigurowac Atmega8 abz to osiagnac, pewnie trzeba cos w fusebitach zmienic, ale nie wiem co.. Prosze o pomoc. Pozdrawiam!
Witam serdecznie, mam pytanie odnośnie kwarcu, tworze coś na zasadzie stopera używam wewnętrznego kwarcu 8Mhz i Atmega8, niestety atmega coś spieszy o parę sekund na minutę, zauważyłem że wiele osób do tego typu projektów używa zewnętrznego kwarcu 32Mhz. Czy stosowanie zewnętrznego kwarcu w tego typu projektach jest konieczne? Czy da się w jakiś sposób...
Witam, proszę o wyjaśnienie zasady działania sygnału PWM [syntax=c]int main(void) { DDRB |= LED1 | LED2; //Wyjścia LED //Inicjalizacja Timer1 (PWM) TCCR1A |= (1<<COM1A1) //Zmiana stanu wyjścia OC1A na niski przy porównaniu A | (1<<COM1B1) //Zmiana stanu wyjścia OC1B na niski przy porównaniu B | (1<<WGM11); //Tryb 14 (FAST PWM, TOP=ICR1)...
Mam taki problem. Jeżeli procek pracuje na zewnętrznym rezonatorze to nie działa mi żaden z timer'ów. Jeżeli włącze wewnętrzny oscylator wszystko działa poprawnie. Co zrobić aby przy zewnętrznym kwarcu wszystko było OK? Może trzeba zaprogramować jakieś fuse?
Mam problem bo probuje uruchomic timer w trybie CTC i podczas debugowania widze ze program w ogule nie wchodzi mi do obslugi przerwnia (SIG_OUTPUT_COMPARE1A) moze czegos nie "urchumomilem"?Korzystam z PDF'a tegoz atmela ale nie wiem co jest zle... Genelanie w programie chcialem osiaganac przerwanie co 1 sek bo konstruluje zegar..Ale jak to uzyskac...bo...
Witam mam taki oto problem uzywam w programie dwoch tiemrow 8 bitowych, timer0 i timer2, wszytko bylo by ok gdyby nie fakt ze po zalaczeniu timera2, czesc prgramu obslugiwana przez timer0 przestaje sie wykonywac, (program nie wchodzi do oblugi przerwania zwiazanym z tiemrem0). i teraz pytanie jak pozbyc sie tego problemu? SIGNAL (SIG_OVERFLOW0)...
Jestem początkującym w programowaniu mikrokontrolerów , próbuje zrobic licznik obrotów/min wynik ma być wyświetlany na dwóch wyświetlaczach led7 seg. wyjście z portów steruje cd4543 a ten układ na darlingtony uln2003 z nich lcd. Dlaczego tak ? Ponieważ docelowo maja być duże wyświetlacze led. Problem polega na tym że w Bascomie nie wiem jak wyswietlić...
witam. Mam problem dotyczący generowania równych odcinków czasu przez timer0 i timer1 osoby mogące udzielić mi pomocy proszę o kontakt. Dokładnie mój problem wygląda tak że każdy program który wykorzystuje timer0 i timer1 ne działa tak jak powinien,np program który zaświeca po kolei 10 diod w odstępach 1sekundy w rzeczywistości nie zaświeca ich po 1s...
Witam Potrzebuje aby co 15 minut była wykonana pewna operacja. Wykorzystałem do tego timer0 dim Liczba8ms as integer Config Timer0 = Timer , Prescale = 256 On Timer0 Pomiar_paliwa On Interrupts Enable Timer0 Load Timer0 = 250 '****PROGRAM GŁÓWNY END Pomiar_paliwa: Load Timer0 = 250 incr liczba8ms If Liczba8ms = 112500 Then '*****jakies dzialanie'...
Cześć. Zaczynam programować i potrzebuję obliczyć lub policzyć ile trwa jedna pętla(Do-Loop) w moim programie(wiem tyle, że trzeba wykorzystać Timer tylko nie umiem się nim obsługiwać:cry:). Proszę o przykłady i także o brak wypowiedzi typu zajrzyj do help-a(bo patrzyłem).
Witajcie, jako amator buduje termometr z wykorzystaniem kodu Pana Mirka Kardasia z książki "Mikrokontrolery AVR w języku C". Kod się wspaniale kompiluje, jeżeli ustawiona jest Atmega32, przy ustawieniu na atmege8 i wstawieniu odpowiedniego kwarcu, takiego jak w kodzie eclipse wywala błąd: Przepraszam, że to wstawiam jako obrazek, ale nie wiem co dokładnie...
Witam Po krotce omówię problemik z jakim się borykam: Uczę się oczywiście programowania AVR w C, napisałem prosty programik, który ma spełniać role BARDZO UBOGIEGO zegarka. problem polega na tym, ze nie wiem dokładnie jaka wartością mam nadpisać rejestr TCNT1 aby przerwanie wystąpiło dokładnie co 0.1s. Powinienem uwzględnić czasy wykonywania kodu zawartego...
Witam Piszę program, który ma sterować wypełnieniem PWM. Timer 1 skonfigurowałem następująco. ;konfiguracja rej TRCA1, TRCB1 zgodnie z mode 8 w nocie katalogowej Tabela 39, ; preskaler 8 kwarc 8Mhz. Zliczenie 1600 impulsów daje częstotliwośc 5kHz ldi r16 , ((1<<WGM13) | (0<<CS12) | (1<<CS11) | (1<<Cs10)) out TCCR1B , r16 ; wpisanie...
Witam, niestety to już mój drugi watek w związku z miernikiem ultradźwiękowym który robię. Najpierw próbowałem z przetwornikiem a/c ale nie dawało to żadnych odczytów i teraz spróbowałem z komparatorem a/c i timerem. Do atmegi podłączyłem nadajnik ultradźwiękowy przeciwsobnie. Włączam timer1 z przerwaniem od przechwytywania. Programowo wysyłam paczkę...
Na początek witam forumowiczów. Jako że właśnie zacząłem z mikro kontrolerami (Atmega8), pojawiło się sporo niewiadomych (dla tych wtajemniczonych pewnie śmiesznych); staram się napisać (a właściwie nauczyć jak to napisać), tak żeby zagrało jak przewiduję. Mianowicie Chodzi o sterowanie przekaźnika (na PC0) wraz z LED (na PD2), z tym że przekaźnik ma...
Witam, Mam mały problem z programem z książki o programowaniu ATmega8 i ARM7 Pawła Borkowskiego tj. cw. 2 z lekcji o przerwaniach. Treść ćwiczenia to takie obsłużenie diód podłączonych do PC0, PC2 i PC4, aby PC4 świeciło po załączeniu przycisku, PC2 ma się zaświecić po 1,5 sekundzie przy wykorzystaniu timera1, a PC1 ma się zaświecić po 170ms przy wykorzystaniu...
Hej, bawilem sie timerem w CTC i ustawilem preskalar na 64, procek jedzie na 1MHz wew. zegarze. Fusebity ma ustawione na l:E1 h: D9. Mimo ustawien procek rozjezdza sie z zegarkiem 10s na kaze ~30m :/ Czy cos zle ustawilem ? [syntax=c] #ifndef F_CPU #define F_CPU 1000000 // 1 MHz #endif #include <avr/io.h> #include <avr/interrupt.h> #include...
Witam, zacząłem bawić się trochę uC z rodziny AVR, to pierwsze mikrokontrolery z którymi mam styczność oprócz krótkiej znajomości z ADuC 8051 na zajęciach. Po ogarnięciu podstaw sterownia pinami I/O chciałem zapoznać się z timerami. Timer 0 bez problemów, za wiele tam nie ma. Jednak używając 16-bitowego timera1 napotkałem problem w trybie CTC, otóż...
Witam mam problem, próbuję zrobić proste miganie diodą LED przy pomocy Timer'a w trybie CTC z preskalerem i wykorzystaniem przerwań. To samo udaje mi się wykonać przy pomocy flag, ale przerwania jakoś mi nie idą. Wstawiam tu mój kod i proszę was o pomoc. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> // initialize timer and interrupts...
Witam. Po bardzo długiej przerwie z mikrokontrolerami chce uruchomić timer1 (16bit) który będzie wystawiał przerwanie od przepełnienia co 1 sekundę . Wszystkie informacje mam z noty aplikacyjnej a jednak dalej nie działa (dioda testowa jest sprawna więc można pominąć sprzęt. Proszę o wytłumaczenie. Pozdrawiam [syntax=c]/* * main.c * * Created on: 15...
teź mam problem z tym procesorem, mianowicie robię dla siebie odbiornik morsa i przy takim samym programie wgranym do pamięci i innym tylko procku (16pu i ta nowa 8a-pu) problem jest taki, że na starym procku wszystko chodzi normalnie, a na tym nowym niby kompatybilnym już nie. Podejrzewam coś z timerami. Proszę o odpowiedź w tym temacie.
Witam, Próbuję uruchomić przerwanie timera 0 w ATMega8583 i jakoś nie mogę. W założeniu ma być to tryb pracy normalnej - licznik krąży i jak się przepełni to następuje przerwanie. Pewnie robię coś nie tak, tylko nie wiem co. Próbuję tak (to tylko fragmenty kodu dotyczące przerwania): .CSEG .ORG 0x0000 rjmp reset .ORG OVF0addr rjmp timer_0 reset:...
Zrobilem sobie zegarek binarny... na atmega8. Wszystko napisalem w C i testowalem w programie VMLAB gdzie wszystko spisywalo sie bez problemu. Jednakże po wgraniu softu do ATMEGI nie dzialaja przyciski ... i niestety nie mam pojęcia dlaczego ... Za wszystkie uwagi serdecznie dziękuje.. Oto schemat: A tu kod: // ****************************************...
Witam, zbudowałem sobie układ diff -u Kopia ds1820tousb-20100717/Makefile ds1820tousb-20100717/Makefile --- Kopia ds1820tousb-20100717/MakefileTue Mar 23 07:55:24 2010 +++ ds1820tousb-20100717/MakefileFri Jul 1 22:05:55 2011 (at)(at) -8,7 +8,7 (at)(at) INCDIR= . # target mcu (at90s8515, atmega16, atmega8515...) -MCU= attiny45...
Witam. Od dość długiego czasu zmagam się z projektem ramienia i aplikacji nim sterującej. Cały projekt jest już prawie ukończony, poza komunikacją usart, która przysparza mi olbrzymich problemów. Aplikację napisałem w visualu. W skrócie, po kliknięciu przycisku "wyślij" program wysyła po serial porcie 18 bajtów (6x[bajt kontrolny+wybór serwa+wartość...
Mam pytanie, do czego służy pin OC1A i OC1B w mikrokontrolerze ATMega8535. W dokumentacji jest napisane: OC1A, output Compare Match A output: The PD5 pin can serve as an extrernal output for the Timer/Counter1 Output Compare A... ale zabardzo nie wiem co to znaczy :/
Wielkie dzieki za te informacje. Jak tylko znajde wolna chwile sprobuje ponownie zajac sie tym ATmega8535. Ale mam jeszcze jeden problem. Wlasciwie to moze nie problem, ale moze ktos wyjasnilby mi jak to jest z Timerami w tych AVR-ach. Przykladowo, Timer0 daje przerwanie np. co 10us, ale procedura wykonywana w tym przerwaniu trwa np. 15us. Co wtedy...
Dzięki za odpowiedź. Już kilka prostych programików na tym uC popełniłem i nie miałem większych problemów. Ten był pierwszy który modyfikował Fuse Bity. Jedynym efektem działania programu jest miganie LED B1 i B2 z częstotliwością <> 10Hz. Poniżej całość programu: [syntax=c] #include <stdio.h> #include <avr/io.h> #include <util/delay.h>...
Witam. Jeżeli nie ten dział to przepraszam i proszę o przeniesienie do odpowiedniego działu. Napisałem program do pomiaru czasu trwania stanu niskiego. $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Enable Interrupts Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5...
O, widzę, że ktoś oprócz mnie również ma ten problem :D Przede wszystkim musisz uwzględnić ten pin SS, o którym wspomniałeś, bez tego ani rusz. Za każdym razem gdy coś wysyłasz po SPI musisz ustawiać SS na zero, a po wysłaniu SS na 1. Warto również zajrzeć do bibliotek, które udostępnia Atmel, jest to nota AVR319, do pobrania stąd [url=]Link ,przy nocie...
Procesor ATmega8515. Silnik sterowany PWM z portu OCR1B z płynną regulacją prędkości. Działa ładnie i jak należy, ale chciałbym w pewnym momencie wyłączyć pwm i całkiem zatrzymać silnik. Robiłem to na dwa sposoby: 1) TCCR1A - zerowałem najstarsze 4 bity żeby odłączyć od pwm port oc1a i oc1b 2) TCCR1B - zerowałem 3 najmłodsze bity żeby zatrzymać timer....
Szkoda. Wprawdzie potrzebowałem 24MHz i ucieszyłem się że ten na 20MHz chodzi i na 24MHz. Ale liczyłem na to że jak zdobędę ten na 24MHz to łyknie ze 30MHz. Szczególnie że okazało się że 24MHz mi nie wystarczy. Wczoraj przypadkiem odkryłem w datasheecie dodatkowe rozkazy (muls, mulsu, fmul, fmuls, fmulsu, movx, lpm, Rx, Z, lpm, Rx, Z+). Pomoc BASCOMa...
Witam. mam mały kłopot z przerwaniami w bootloaderze na wymienionym procesorze (dataszit o ile mnie oczy nie mylą, mowi ze adresacja sekcji pamieci flash jest taka sama jak w zwyklej atmedze8) proc ustawiony na wielkosc sekcji boot na 1024 słowa, po resecie wskakuje do bootloadera. program skompilowany pod 0xC00 czyli w makefile de facto adres .text...
Piszesz o wewnętrznym oscylatorze wnioskuję więc , że posiadasz Atmega8515. Od producenta wychodzi ona z oscylatorem 1Mhz i z taką częstotliwością pracuje twój procek jeżeli nie majstrowałeś w fusebitach. W załączniku przesyłam pożyteczny kalkulatorek do obliczeń na timerach. Pozdrawiam!
Poszukuję wsadu do AtMega8 umożliwiającego stworzenie zegarka z datą na wyświetlaczu 2x16. Znalazłem kilka ale była też tam obsługa czujników temperatury (bądź pod wyświetlacz led), a ja odczytywać temperatury nie chcę. Czy któryś z forumowiczów dysponuje takim plikiem, lub potrafiłby zmienić ten, tak aby nie było obsługi czujników temperatury: '[syntax=basic4gl]Program...
Aż wstyd przyznać że taka głupia pomyłka :P Dopiero po kilku godzinach zorientowałem się że jest to dioda migająca :) Wszystko jest w najlepszym porządku na razie. Uczę się BASCOMA. Przy okazji mam pytanie. Jak użyć tego "TIMER" żeby uzyskać efekt KnightRider?
Trudno mi ocenić czy AVR nie uciągnie, bo obawiam się, że jeszcze jakieś warunki trzymasz w rękawie :) Robiłem jako przykład do książki sterowanie matrycą RGB z odcieniami kolorów realizowanymi przez PWM (czyli procek pełnił rolę układu WS2812) i XMEGA się nudziła, generując obraz na matrycy. Ale wynika to z wykorzystania DMA, timerów i event system,...
Witam. Chciałbym się pochwalić swoim projektem serca, wykonanego na LED oraz mikrokontrolerze AtMega8A. Schemat: Jak widać schemat jest bardzo prosty, zasilanie całego układu jest z gniazda mikro USB typu B, każda dioda ma rezystor ograniczający 330Ω. Wszystkie elementy są smd, diody i rezystory w obudowie 0805 a AtMega8A w TQFP32. Płytka jest...
Jak w temacie, zlecę napisanie programu w c dla AVR Atmega88. Ma to być prosty timer z dwoma wejściami które wyłączają przekaźnik po określonym czasie. Więcej info na PW.
co do organizacji całości- dokładnie tak, to są tzw. timery programowe. A co do odświeżania - mogę Ci pomóc wieczorem, jak wrócę z pracy :)
Próbuję zrobić zegar cyfrowy zbudowany z wyświetlacza LCD (2x16) i mikrokontrolera Atmega8A. Chcę wykorzystać do tego 16 bitowy timer1, zegar ma działać na tej zasadzie, że w przerwanie występujące co sekundę zwiększa zmienną seconds o 1, potem gdy zmienna seconds = 60 to do minut dodaje 1 itd... Problem w tym, że gdy dla testu chciałem wyświetlić aktualne...
zobacz sobie temat: program będzie bardzo podobnie wyglądał. Chodzi mi o Timery. Dodano po 2 ale czy te diody mają się świecić cały czas to znaczy, że jeśli będzie więcej impulsów niż 200, to mają się świecić wszystkie 3 diody czy tylko 3 dioda?? Tak na szybko napisałem( nie testowałem ale powinno działać): Dioda świeci się tylko jedna w danym momencie...
Potrzebuje emulator DS18B20 na atmega8 - mam na PC program do odczytu temp i chciałem w tym programie dodac inne parametry ( np wilgotnosc ) ale nie zmieniajac programu - w scrachpadzie bede wisyłał inne dane nie temperature. ( w bajtach temperatury lub bajtach uzytkownika wolnych 2szt) Aktualnie używam "lampomitari" , ale napisalem przeróbke programu...
Opatentowany jest własćiwy standard 1wire, a nie technika ściągania linii transmisyjnej do masy. Wystarczy że ktoś wymyśli sobie inna logike przesyłu bitów, zmieni czasy, timesloty nazwie cyklami zegarowymi ( :P ), i juz nie lamie się zadnych praw - bo taki wytwór wtedy nie jest już standardem 1wire ani nawet nie "zgodny" z tym standardem. Na duże odległości...
Używam poniższego kodu do inicjalizacji połączenia z komputerem samochodu (według protokołu kw2000). Używam tam komunikacji USART 10400baud 8n1. Chciałem zwiększyć taktowanie do 8MHz i usunąłem programowo dzielnik fusebita CLKDIV8 zmieniając na początku funkcji main() rejestr CLKPR w ten sposób: CLKPR|= _BV(CLKPCE); CLKPR&=~ _BV(CLKPS1); CLKPR&=~...
Witam Potrzebuję zrobić zegar na ATMEGA8535 i nie mogę uruchomić pracy asynchronicznej. Kwarc zegarkowy podłączony do XTAL1/2. Program wstępny poniżej. Analogiczny program (ze zmianą ASSR.5 = 1) dla ATMEGA88 działa poprawnie. Proszę o pomoc. Pozdrawiam Jacek Program napisany w "BASCOM AVR" [syntax=basic4gl][/syntax] $regfile = "m8535.dat" $crystal =...
Tak, wybrałem Low Frequency, da sie jakoś ruszyć uC bez tak wolnego kwarcu ? Co masz na myśli 'ruszyc' ? Prawdopodobnie chcesz skorygowac błędnie ustawione fusebity (powrócic do default settings). W zasadzie datasheet mówi o optymalizacji oscylatora processora do 32kHz jako 'Low Freq.' , ale do komunikacji podczas programowania mozesz tu zastosowac...
Timer, licznik .... ? Gdzie to wydybałeś?
Problem wyjaśniony jest na samym wstępie rozdziału o liczniku: 16-bit Timer/Counter1 -> Overview -> Registers Rejestr OCR1A jest podwójnie buforowany. Inaczej mówiąc w momencie rozpoczęcia inkrementacji TCNT1 (pozycja Bottom) przepisana jest wartość OCR1A jako TOP, po to by następnie sprawdzać w każdym kroku wartość OCR1A (którą można zmienić tylko...
Witam. Jestem całkowitym początkującym jeśli chodzi o elektronikę, ale chciałbym zacząć się tym zajmować - a dokładniej: mikrokontrolerami. Do tej pory nie miałem styku z elektroniką, tylko z samym programowaniem pod windows. Mam na oku takie coś: Mikrokontroler AVR, DIP28 Symbol: ATMega8-16PU Mikrokontroler 8-bit AVR Flash : 8kB RAM : 1kB EEPROM :...
Witam! Mam problem (a właściwie 2) z moją lampą. Zmontowałem lampę led wg. własnego schematu. Komunikuje się ona z tabletem/komputerem za pośrednictwem Bluetooth HC-06. Układ działa poprawnie lecz pojawił się problem z zawieszaniem. Mianowicie po ok 30-60min główny program zawiesza się (żadne dane po USART nie są wymieniane). Niestety nie udało mi się...
Witam... Próbuje poskładać timer (kuchenny) odliczający minuty na atmega8... Na wejcia TOSC1 TOSC2 wpięty jest kwarc 32768Hz... A do wyświetlania chciałem użyć ICM7217AIJI (Intersil ale to samo co MAX... chyba)... Podpiełem linie COUNT, RESET, UP/DOWN i DISPLAY CONT bezpośrednio pod uC... Wejscie STORE do masy i SCAN również do masy tyle, że przez kondensator...
Witam. Mam straszny problem z ATMEGA8 (zresztą podobne rzeczy działy się w ATMEGA16). Mianowicie, robię sobie prosty sterownik. Posiada on m.in. 4 przyciski, zrobione w ten sposób, że są one z jednej strony podłączone do wejść PIND.0 – PIND.3. Wejścia te podłączyłem również przez rezystory 4,7k do masy, oraz równolegle do tych rezystorów dałem...
SIGNAL(vector) { asm volatile(""::)... } jak i twoja wersja wykorzystująca ISR(vector) ISR(vector) { asm volatile(""::)... } generuje dokładnie ten sam kod: __vector_X: /* tu prolog */ /* kod */ /* tu epilog */ reti Tak utworzona funkcja przerwania blokuje pozostałe...
Witam mam pytanie odnośnie wykorzystania Timera1 do sprzętowego generowania sygnału prostokątnego na atmega8L. Tak programuję uC: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Timer1 = Timer , Prescale = 256 , Compare A = Toggle , Clear Timer = 1 Compare1a = 31250 Start Timer1 Do Loop End Do pinu nr 15 (OC1A) podłączony...
Ten komunikat autoroutera bierze sie stad, ze uzywasz elementow SMD, ktore maja pady tylko po jednej stronie plytki. Przerzuc element na druga strone i bedzie ok. Co do sterowania wentylatorem to uzyj albo mosfeta (jesli to wentylator o wiekszej mocy), albo tranzystor bipolarny (latwiej wysterowac), podlacz do pinu procesora, na ktory mozesz wyprowadzic...
Witam ! Wykonalem niedawno sterownik pralki Amica, na atmega8. Wszystko super dziala z jednym szczegołem. Aktualnie regulacja predkosci silnika zrobiona jest na zasadzie włączania triaka z odpowiednim opóźnieniem względem zera sieci. To sie niestety nie sprawdza bo zaleznie od obciązenia bębna silnik ma różne obroty, i teraz pozostaje sprawdzanie napięcia...
Mógłby ktoś z was zerknąc w mój kod i sprawdzić co jest nie tak?? /***************************************... Chip type : ATmega8L Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 ****************************************... #include...
Witam. Mam z książki Marcina Wiązani listing do zegarka na atmega8. Chciałbym włączyc jeszcze do tego projektu termometr ( możne być DS18B20 lub LM35). Jak to technicznie wykonać? listing zegara 'Program zegara wykorzystującego przerwania od Timer1 'Przerwanie przepełnienia Timer1 jest generowane co 1 s '8 MHz/256/31250 = 1 s 'Przycisk S1 ustawia minuty,...
Witam, na początek dodam że dopiero zaczynam z Bascom'em. Mam problem w przepisaniu programu z ATTINY2313 na ATMEGA8. Oryginalną wersję zamieszczam poniżej: '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111 : Portb...
Wziąłem to,co było pod ręką, poza tym każda ATmega posiada sprzętowe mnożenie, które zdecydowanie ułatwia sprawę przy pobieraniu wartości z tablicy oktaw. Na upartego, to i można zrobić na ATtiny24 (warunek: jeden timer 8 bit i jeden 16 bit), ale ten projekt ma służyć początkującym, a tacy, według moich subiektywnych obserwacji działu "Mikrokontelery",...
Programuję w ASM ale tylko Atmega8/16 więc wklejam ci taki przykład: [syntax=asm] .CSEG .org 0x0000 //poczatek deklaracji skokow dla przerwan rjmp _poczatek reti reti reti reti reti reti reti reti rjmp _150_timer0 //przerwanie overflow timer0 reti reti reti reti reti reti reti reti reti _poczatek: in r16, TIMSK//timer0 overflow interrupt enable ori...
Atmega8 czy atmega8L, ta pierwsza ma zakres napięć od 4,5-5,5V częstotliwość pracy 0-16MHz, ta druga 2,7-5,5V częstotliwość pracy 0-8MHz, pierwsza strona noty. Jeśli używasz wersji zwykłej bez L to masz za małe napięcie. Jeśli chcesz sprawdzić prędkość procka to możesz skonfigurować jakiś timer to pracy w trybie PWM i porównać częstotliwość na wyjściu...
Wg musisz zmienić nazwę wektora przerwań na TIM0_OVF_vect Porównaj sobie datasheet attiny13 z datasheetem atmegi8 żeby skonfigurować timery. Do skonfigurowania timera w attiny służą rejestry TCCR0A i TCCR0B, w atmedze8 jest tylko TCCR0 Co do timsk - jak wyżej. W attiny jest TIMSK0 a w atmedze TIMSK, również zobacz szczegóły w datasheecie.
Apropo wejść.. Z tego co do tej pory się bawiłem, to zwykły pin reaguje tylko na dany stan, nie na zbocze... Funkcje taką mogą mieć dopiero wejścia specjalne, np.: zew. przerwanie (INT0, 1...), oraz timery. Można je ustawić tak, żeby reagowały na dane zbocze, lub stan. Chyba, że czegoś jeszcze nie wiem... ;)
A może zrobić to z innej strony - wykorzystać Timer/Counter1 z odszumiaczem (Noise Canceler). Licznik może zliczać impulsy z kontaktronu, a przerwanie w stałych odstępach może sprawdzać stan licznika.
atmel.com nie działa ? ;-) TOIE0: Timer/Counter0 Overflow Interrupt Enable When the TOIE0 bit is written to one, and the I-bit in the Status Register is set (one), the Timer/Counter0 Overflow interrupt is enabled. The corresponding interrupt is executed if an overflow in Timer/Counter0 occurs, i.e., when the TOV0 bit is set in the Timer/Counter Interrupt...
Jeżeli miałeś włączoną optymalizację, to podejrzewam, że kompilator usunął cały kod funkcji delay(), która nic nie robi, a nie ma tam nic zadeklarowanego jako volatile . Do generowania dźwięku znacznie lepiej nadają się timery. O cbi() i sbi() powiem tylko że "nie powinno się", ale ich użycie błędem nie jest i tutaj działa poprawnie, aczkolwiek można...
Jeśli chcesz uzyskać częstotliwość 1Hz, to na pewno opóźnienia muszą być po 500ms (a nie po 100- wtedy było by około 5Hz). W taki sposób ciężko uzyskać bardzo dokładną częstotliwość - czas wykonania pętli jest większy niż zadany przez opóźnienia - pozostałe instrukcje też zajmują czas. Żeby tego uniknąć musiał byś operować timerem. Jeśli nie używasz...
A czy timery, przerwania, komparatory i inne dodatki w procesorze były powyłączane?
Stosując polecenie Waitms nie moge uzyskać czasu opóźnienia mniejszego niz ok 10ms Więc go nie stosuj. Do tego są Timery.
Witam. Potrzebuję odczytać kod RC5 z wyprowadzenia INT1 (PD3) Atmega8. Tymczasem w znanym Bardzo ważna uwaga: polecenie GETRC5 jest "fabrycznie" przypisane do wejścia INT0 procesora i NIE MOŻE współpracować z jakimkolwiek innym wejściem, nawet jeżeli jest to wejście przerwania sprzętowego. Dekoder podczerwieni TFMS lub SFH MUSI być dołączony do nóżki...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
Tak, możesz liczyć ilość przepełnień, musisz dodać obsługę przerwań od Timera i tam inkrementować zmienną. Licznik ustaw tak, żeby przepełniał się co 0,1s. Wtedy nie musisz przeładowywać timera.
Kolego, zacznij od skasowania tego co napisałeś i zrób to jeszcze raz, tym razem tak jak należy. Czyli przerwania + timery. żadnych delay, a już w szczególności delay w ISR, podobnie jak pisania po LCD w ISR. Przejrzyj w tym celu noty katalogowe Atmela - np. AVR410 - stara jak świat, ale masz tam ideę.
Witam serdecznie. Zazwyczaj większość problemów udaje mi się rozwiązać bez pisania na forum, jednak ten doprowadza mnie już do szewskiej pasji. Chcę zrobić zegarek na Atmega8A taktowanym wewnętrznym oscylatorem, z podłączonym kwarcem zegarkowym do wejść TOSC1/TOSC2 -bez powodzenia. Zawsze program staje na pętli Na layoucie jest oznaczona niepołączona...
Witam, Pisze kod do projektu termometr na czujniku LM35 i Atmega8. Wartości zmierzonego napięcia z czujnika zapisuję w zmiennych TEMP oraz DZIESIATKI i JEDNOSCI. Mój problem polega na tym, że nie wiem jak mam zadeklarowac zmienne DZIESIATKI i JEDNOSCI aby mozna było te wartości przekazywać do obsługi przerwania ISR(TIMER0_OVF_vect) w którym chcę wyświetlać...
Każdy kiedyś patrzył na przykłady a nie od razu główkował. Proszę. Baw się dobrze. Przetestowany ;) [syntax=vbnet]'#########################... '# Program włącza jeden z trzech przekaźników w zależności # '# od tego ile razy lub jak długo naciesnieto przycisk # '# Jeden krótki Przekaznik1 na czas 1s # '# Dwa krótkie Przekaznik2...
dlaczego się nie kręci 1 Bo może już ustawiło się w pozycji odpowiedniej dla 2ms i nie powinno się kręcić? Spróbuj zmienić impuls np na 1ms. 2 Masy połączone? 3 Serwo powinno się sterować timerem, a nie delajami. Ale w celach testowych wyrzuć z pętli obsługę wyświetlacza. Nie wiadomo co w niej jest, może jakieś przerwania rozciągają czasy.
Hej! Ja podpinam pod reset coś takiego (załącznik). Naciśnięcie przycisku powoduję reset mikrokontrolera. Dodadtkowo układ zabezpiecza mikrokontroler przed samoczynnym resetowaniem się pod wpływem zakłóceń. Co do reszty to masz rację, reset powoduję dokładnie to samo jakbyś wyłączył i ponownie włączył zasilanie. Proponuję skończyć z mitami, i na solidnie...
hym.. komendy jak sie zabrac, bedzie trudno. Napisz moze o jaki jezyk chodzi, jesli o c, to mozesz sobie psoterowac jasnoscia swiecenia: Ustawienia wieszosci w tym przykladzie nie sa jedyne mozliwe, zeby to rozszyfrowac najlepiej zajrzyj do datasheet od AtMega8. Oczywiscie zmiana wypelnienia odbywa sie na odpowiednim pinie- tutaj powiazanym z drugim...
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ś?
Sorry za OT ale chyba nie wszyscy z was umieja czytac ale gdy po pierwszym resecie nie zadziała to się wiesza na dobre i nawet ręczny reset nie działa tylko odpięcie zasilania pomaga. Jak to sie ma do waszych wszystkich dywagacji ? Z drugiej strony sam przeszukalem manual do Atmega8 i nie potrafie odpowiedziec na to pytanie takze chetnie sie dowiem...
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...
Wystarczy jedno wejście I NTx , które będzie wykrywało ten impuls. Ale jeśli to będzie impuls "z ręki" jakiś klawisz to bez sensu - ze względu na drgania styków a potrzebny minimalny czas np 1ms. Jeśli to będzie impuls z jakiegoś wyjścia cyfrowego to ok. Założenia: - wykorzystamy tylko jedno wejście INTx - wykorzystamy tylko jeden Timer sprzętowy Przygotować...
A nie lepiej podpiąć się do układu "psikania" i zrobić samemu kawałek elektroniki na ATMedze8? Witam. Zainspirowany cytowaną myślą postanowiłem w ramach ćwiczeń i samokształcenia rozwiązać ten problem. Powiem na wstępie że nie jestem elektronikiem i dlatego tez proszę o oszczędzenie krytycznych uwag co do mojego profesjonalizmu. Posiadam AirWick FreshMatic...
Witajcie Chciałem się z Wami podzielić ostatnim projektem. W ramach czasu wolnego i wyzwania noworocznego stworzyłem świetlną dekorację w kształcie śnieżynki do zawieszenia np na choince. Inspiracja wzięła się z obserwacji migotania sznura świateł chińskiej produkcji podczas wizyty w gości skwitowane moim stwierdzeniem " ja zrobiłbym lepsze ". Sterowanie...
Witam Mam prośbę o rozjaśnienie pewniej sprawy - mam do Atmegi8 podpięty odbiornik IR (SM3385P) cudo to zostało wymontowane z jakiegoś odbiornika Czujnik podpięty jest pod PB0 - do tego posiadam pilot TTS35AI - od zestawu SkyStar2 - do przetestowania wykorzystałem program ze strony Kod poniżej [syntax=c] //--------------------------------------...
Tutaj ci już nie pomogę gdyż nie korzystam z rtc. Ja do odmierzania tylko czasu jako godzin stosuje ctc timer'a 2 i to w Atmega8 ale 88 też to powinna posiadać. Odsyłam do not katalogowych. Pozdrawiam :) Ps: tranzystory to tak jak piszesz. Masz maksymalnie 4 diody każda o maksymalnym prądzie 20mA więc w sumie daje to maks 80 mA więc 100mA wystarczy....
Witam, 3 tygodnie temu postanowiłem poznać zasady programowania mikroprocesorów, aby przygotować inkubator (coś na wzór projektu, który znalazłem na niniejszym forum ATmega8A ustawiony na 2MHz i czujnika DS18B20 . Do tego wyświetlacz LED 3-cyfrowy, 7-segmentowy. Program napisałem w C. Nie da się ukryć, że więcej było w tym "wklejania: niż "pisania",...
Witam, potrzebuję wygenerować przerwanie analogicznie do stworzonego w atmega8. W Atmega8 użyłem Timer1 tryb CTC, teraz chcę osiągnąć podobny efekt na pic16f1716. Może ktoś pomóc? [syntax=c] void Init_Timer1A(void) { TCCR1A = 0x00; TCCR1B =(1<<CS11) | (1<<CS10) | (1 << WGM12); //tryb CTC (WGM12), Prescaler = 64 (CS11,cs10) clk = 8Mhz...
jestem początkującym mam odbiornik podczerwieni sfh5110-36 i atmege8 wszystko podłączyłem jak na schemacie wgrałem też plik //--------------------------------------... // Plik "main.c" // // KURS AVR-GCC (abxyz.bplaced.net) // // Dekoder RC5 // // (schemat i opis działania w artykule) // testowanie na atmega8 (8MHz) //--------------------------------------...
Witam, potrzebny jest mi generator fali PWM o zmiennej częstotliwości i wypełnieniu. Górna częstotliwość wynosi 150kHz, dolna 10kHz. W programie wykorzystuję dwa kanały adc (tj. adc1, adc2) oraz jedno wyjście dla wspomnianej fali (tj. PC5). Atmega8 pracuje z zewnętrznym kwarcem 16MHz. Górna częstotliwość wymaga 106 cykli zegarowych, dolna natomiast...
Swego czasu tak z 10 lat temu musiałem wymyślić coś na zawieszane kamery obrotowej LG Dystrybutor twierdził, że to nie jest wina kamery. Po ponad roku okazało się jednak, że to jej wina. Do tego czasu kamera była reklamowana i zwracana kilka razy. Zawieszała się tak około po godzinie pracy i nie działało sterowanie PTZ poprzez RS485. Więc potrzeba była...
Z noty katalogowej ATmega8515 (pierwsza strona): • Peripheral Features – One 8-bit Timer/Counter with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Three PWM Channels – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable...
Wszystko działa idealnie. Problemem były czasy oczekiwania ( Waitms,Wait ). A jeżeli już jesteśmy przy diodach led - to teraz jak zrobić odpowiedni efekt gaszenia diody na PWM Wiem ze mozna zastosowac timery.. $regfile = "m8def.dat" $crystal = 10000000 Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm...
Robię mały projekcik, w którym potrzebuję 4 kanałów PWM. Chciałem to rozwiązać programowo, niestety nie udaje mi się ożywić mojego timera, a konkretniej przerwanie (zarówno overflow jak i compare) nigdy się nie wykonują. Umieściłem w funkcji obsługującej to instrukcję gaszenia diody, lecz program nigdy tam nie doszedł. Nie mam pojęcia co robię źle,...
Dzięki za pomysły. A motylem, co to? Ot takie bździewka oferuje TVMango, Allegro i straganowi sprzedawcy. W kształcie to właśnie przypomina motylka. Po bokach elektrody samoprzylepne - przewodzące a pośrodku elektronika sterująca i zasilanie. One są jednokanałowe. To stare co mam z niego transformatory jest 2 kanałowe - 4 elektrody na przewodach. A...