(at)redcap16 ciekawe jak chcesz, hakerze, rozkodować kod maszynowy :D (at)mikimause9 coś takiego uskrobałem na szybko: [syntax=c]#define PWM_PIN 11 //numer pinu, na którym ma się pojawić PWM bool pwm_on, state = false; void setup(){ noInterrupts(); pinMode(PWM_PIN, OUTPUT); digitalWrite(PWM_PIN, LOW); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; OCR1A = 104;...
A mógłbyś to jakoś opisać kodem ? [syntax=c]#define BAUD0 9600 //BaudRate (bps) #define MYUBRR0(F_CPU/16/BAUD0-1) //Przerwanie co 0.1s ISR(TIMER1_COMPA_vect) { uint8_t key; static uint8_t lkey=0; key = (PINC & (1<<3)); //przycisk NPN na PC3 if(!key && lkey) UDR='k'; //wyślik "k" jako znak, że wciśnięto przycisk lkey = key; } //przerwanie...
Tak jest to dość istotne... Do pomiaru używany jest 16-bit'owy timer 1 (atmega162 ma dwa ale po takim ogólnym rzucie okiem na pdf wygląda na to, że nie ma różnic w konfiguracji)... Co przy częstotliwości taktowania 8MHz prescalerze 8 daje max ~65,5ms przy dokładności do 1us... Poniżej fragment kodu który mierzy czas trwania stanu wysokiego... ... volatile...
Witam. Chcę przedstawić szopkę Bożonarodzeniową. http://obrazki.elektroda.pl/9749389200_1... Całość wykonana własnoręcznie z pomocą kochanej żonki. Opiszę co i jak. Szopka ma ruchomy żłobek, dwie pochodnie i ognisko, na filmikach wszystko widać. Opiszę konstrukcję, do sterowania wszystkim użyłem Atmegi8. Trzy sprzętowe kanały PWM posłużyły...
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
Cześć, Napisałem prosty program LineFollowera w AtmelStudio. Atmega 328p polaczona jest ze sterownikiem silnikow l293d. Połączenia na płytce są okej, napisałem podobny program w arduino IDE i wszystko działa. W AtmelStudio też wszystko działa oprócz PWMa... Kręci się tylko prawy silnik i nie reaguje wogóle na zmiane wartości PWMa. Do atmegi nie jest...
Mam problem z plikiem w którym brakuje zamykającej klamry. Szukam jej od dwu dni i już dostaje oczopląsów. POMÓŻCIE proszę ślepemu odnaleźć błąd. // ################################## // ###### SOLAR_MONITOR SYSTEM ###### // ######## ZEGAR STERUJACY ########## // ################################## // created margas 2012 modify 2025 // fusebity atmega...
https://obrazki.elektroda.pl/1909244200_... Dzięki mikrokontrolerom AVR, takim jak ATmega można zrealizować wiele ciekawych projektów. Autor poniższej konstrukcji postanowił wykorzystać te możliwości do skonstruowania prostego nadajnika AM (z modulacją amplitudy) wykorzystując Arduino Nano (możliwe jest także wykorzystanie Arduino...
Witam, mam problem ze stworzeniem w języku C generatora, który będzie mi zmieniał stan niski na wysoki (stan niski 10ms, stan wysoki 0.32ms) przez czały czas działania programu niezależnie od pętli głównej programu. Czy jest to wogóle możliwe? Liczę na pomoc w dojściu do rozwiązania tego zagadnienia. ATmega 168 taktowana wewnętrzym oscylatorem 8MHz....
Mam pewny problem i nie umiem tego policzyć bo mi coś źle wychodzi Tak mam ustawiony timer1 16bit [syntax=bash] cli(); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; TCCR1A = (1<<COM1A1) | (1<<WGM11); TCCR1B = (1<<WGM13) | (1<<CS11); // preskaler 8 ICR1 = 19999; sei(); [/syntax] 1<<COM1A1 - generuje PWM na pinie 9 początek stan wysoki,...
Chciałbym Ci zaproponować trochę bardziej eleganckie rozwiązanie - bez delaya w przerwaniu i z sensownym debouncingiem: [syntax=c]#include <stdio.h> //dodajemy biblioteki, które umo¿liwiaj¹ korzystanie z procedur #include <math.h> #include <avr/io.h> #include <util/delay.h> #include "LCD.h" #include <avr/interrupt.h>...
Zwróć uwagę na 2 funkcje na dole i STEP_,STEP_OFF [syntax=c]void nawijarka_start(void) { _delay_ms(WAIT_50); kontrol_funkcji=2; char bufor[5]; init_T1_Hz_kroki(ocr1);//sygnał STEP init_INT0();// zliczanie zwoi ekran_1_start(); DIR_HIGHT; // przesów lewo/prawo ZLICZ_ZWOJE_ON; //int0 STEP_ON ; //#define STEP_ON TCCR1B |= _BV(CS11) | _BV(CS10); ENABLE_ON;...
Mam 4 piny z PWMem wykorzystane w układzie, teraz próbuję na PB1, nieco przerobiłem kod, natomiast ten silnik również się nie obraca. Czy nadal coś robię źle? [syntax=c] #include <avr/io.h> #define F_CPU 16000000UL int main(void) { DDRB |= (1 << PORTB1); TCCR1A |= (1<<WGM10); TCCR1B |= (1<<WGM12); TCCR1A |= (1<<COM1A1)|(1<<COM1B1);...
witam, próbuję osbłużyć akcelerometr ADXL345 po i2c, ale komunikacja zawiesza się po pierwszej komendzie i w ogóle program nie wchodzi do pętli while(1). jak zakomentuje linijkę: i2cTransmit(ADXL345, POWER_CTL, 0) w mainie; to ATmega wysyła po USARCIE dane bez problemu, w przeciwnym razie zawiesza się. o to listing programu: ATmega168 + 20 MHz, na samym...
Witam wszystkich. Podczas dzisiejszej zabawy z Atmegą32a napotkałem 2 problemy. Jeden, to dziwnie działający UART: Przy takim kodzie: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define PWM_A (1<<PD4) #define PWM_B (1<<PD5) int a = 0; #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((8000000UL / (USART_BAUDRATE *...
Witam, Przesiadłem się właśnie z procka ATmega 16 na Atmegę 162 z powodu nie wystarczającej liczby portów. Napisałem program który ma za zadanie włączyć TIMER1 w tryb licznika z sygnałem taktującym na porcie PB1(T1). [syntax=asm].include "m162def.inc" .cseg .org 0 rjmp reset reset: cli ldi R16, low(ramend) out SPL, R16 ldi R16, high(ramend) out SPH,...
PWM 8 bitowy. Poniżej zamieszczam inicjalizację void pwm_s(void) { TCCR1A = _BV(COM1A1) |_BV(WGM10) ; TCCR1B = _BV(CS10) |_BV(WGM12) ; OCR1A = 0x32; //Wypeł. } Uzyskałem 502us przy 1MHz. Zgodnie z zaleceniami 8 bit fast pwm preskaler 1. Pozdrawiam
prosze: TCCR1A = (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0) |(1<<COM1B1) | (1<<COM1B0); TCCR1B = (1<<CS10) | (1<<CS11) | (0<<CS12) | (1<<WGM12); ICR1H = 0; ICR1L = 255; sei(); }
zdawało mi się , że już "zatrybiłeś" timery Dokładnie i dlatego pozwoliłem sobie udzielić odpowiedzi. Timer w trybie 5 bez względu na ustawienia zawsze liczy do końca (0xFF) a zmiana pinu OCRx dokonywana jest po osiągnięciu wartości ustawionej w OCR1A. Jak widać na przykładzie ustawiany jest 5 tryb pracy tego timera. ldi temp,(1<<COM1A1)|(1<...
Kawałek biblioteki UART dotyczący tego uC: Kod: c Chyba moje możliwości są ograniczone żeby zamienić to tak aby to co mi wysłałeś działało tak jak ten fragment: [syntax=c]#if defined (__AVR_ATmega168__) #define UCSRB UCSR0B #define TXEN TXEN0 #define RXEN RXEN0 #define RXCIE RXCIE0 #define TXCIE TXCIE0 #define UDRE UDRE0 #define UBRR UBRR0 #define...
Ja mam podobny problem z ATmega 32 i z przerwaniem od przepelnienia licznika T1. Program caly czas siedzi w przerwaniu nie moze nie z niego wrocic. Kod wyglada mniejwiecej jak ponizej. jezeli w funkcji main w petli while jest printf to program wraca z przerwania. Jezeli wstawie tam np swiecenie diody to program krazy caly czas w przerwaniu. Moze mi...
układ został w całości zmontowany. niestety po uruchomieniu jest cicho i głucho. próbowałem uruchomić poniższy program z PWM (na diodach działał): [syntax=c] #include <avr/io.h> int main() { DDRC = 0xFC; //klawiatura PORTC = 0xFF; DDRD = 0xFF; PORTD = 21; // stan wysoki na OCR1A i PD4 TCCR1A = 0b10000010; TCCR1B = 0b00011001; TCNT1 = 0; OCR1A...
No dziękuję bardzo ale z całym szacunkiem: taka odpowiedź właśnie nic nie wnosi :D Jedynie tyle że: "jest tam napisane i napisane jest dobrze". Jak by był tak miły kolega wskazać dokładnie z opisem gdzie jest to napisanie w dokumentacji to wtedy ma to jakąś wartość a takiej odpowiedzi może udzielić prawie każdy :) Może jestem ślepy, może zbyt głupi...
Witam, chcę uruchomić na timerze 16 bitowym tryb 15. 'Fast PMW' robię to tak: [syntax=c] PORTC |= (1<<PD4); TCCR1A|=(1<<COM1B0) |(1<<WGM11) |(1<<WGM10); TCCR1B|=(1<<WGM13) |(1<<WGM12) |(1<<CS11) //prescaler 64 |(1<<CS10); OCR1A=400; OCR1B=250; [/syntax] I teraz jeśli dobrze rozumiem to rejestrem OCR1A...
potrzebuję zrobić generator na Timer 1 w ATmega 8 1kHz prostokąt. Proszę o sprawdzenie kodu czy może to działać . Siedzę nad pdf atmegi ,przeglądam konfigurację i opisy i nie bardzo rozumiem. Taktowanie wewnętrzne 1Mhz /preskaler =8/ 125 = powinno wyjść 1kHz ,pożniej jeszcze modyfikacja aby można było przełaczyc na 500 i 250 Hz. 15:44:27 ****...
Witam Od jakiegoś czasy chce zrobić zegarek na atmega8. Do odliczania sekund użyłem unsigned int i=0; void wait(long t) { long cnt = 0; TCCR1A = 0; TCCR1B = 3<<CS10; TCNT1 = 0; TIFR |= (1<<TOV1); while(cnt < t) { if(TIFR & (1<<TOV1)) { cnt += 65536; TIFR |= (1<<TOV1);...
Witam. Chciałbym wykorzystać przerwania timera1 w Atmega32 do realizacji pojedynczego pomiaru wartości na ADC. Timer ustawiam w tryb "PWM with phase correct", a ADC na pojedynczy pomiar: [syntax=c] //ustawienia timer1 TCCR1A |= (1<<WGM10) | (1<<WGM11); TCCR1A |= (1<<COM1A1); TCCR1B |= (1<<CS11); //POZWOLENIA NA PRZERWANIE TIMSK...
Witam. Napisałem kod do PWM w trybie 14. Przy ustawieniu OCR1A = TOP dioda na nóżce D5 powinna się świecić. Przy ustawieniu OCR1A = 0 dioda na nóżce D5 powinna się nie świecić. Świeci w obydwu przypadkach co tu jest nie tak. #define F_CPU16000000UL//1MHz zegar procesora #include <avr/io.h> #include <util/delay.h> #include <string.h>...
Witam, Jestem początkującym w temacie, napisałem sobie sterowanie 8 serwami, ale chciałbym to robić bardziej dokładnie przy użyciu trybu CTC timera1 i sprzętowego rejestru przesuwającego. W następujący sposób go inicjalizuje // na początek włączamy tryb czasomierza i ustawiamy wyjscie na 0 w trybie normalnym TCCR1A = 0x00; // tryb czasomierza TIFR &=...
Witam Szanownych Forumowiczów, w aktualnym projekcie muszę wygenerować trzy interwały czasowe z regulowaną długością. Poglądowy rysunek dołączony jest jako załącznik. T1ON powinien mieć regulację 1-100us, T2OFF (możliwie krótko - 5us), T3ON (możliwie krótko - 5us). Wykorzystywana przeze mnie Atmega taktowana jest zewnętrznym zegarem 20MHz. Wynika z...
Czesc, No niestety nie hula... probowałem tego. Myśle ze atmega jest zryta jakos... Mimo tego, ze mam obsługe przerwań i tak, wiem ze to musi działać bo skopiowałem to z mojego poprzedniego projektu, to mi się restartuje atmega. Zwrać na płytce nie ma. [syntax=c] #include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h>...
Witam, Mój problem jest dziwny. Mam przetestowany układ na płytce stykowej, program też działał bez zarzutów. Wykonałem PCB złożyłem, ATmega normalnie została zaprogramowana i reaguje. Zczytałem pomiary temperatury przez UART- też działa. Obecnie sterowanie jest dwustanowe, docelowo będzie PWM i PID. A teraz moje 2 problemy: 1) Sterowanie MOSFETEM....
Witam! Chcę ustawić TIMER1 w atmedze 16 tak aby generował przerwania mniej więcej co sekundę w trybie CTC (dodam, że nie zależy mi na aptekarskiej precyzji). W tym celu ustawiłem następujące rejestry: TCCR1A |= (1<<WGM12); //tryb ctc , timer1 TCCR1B |= (1<<CS12)|(1<<CS10); //prescaler 1024 / OCR1A = 7813; // 8MHz/1024 TIMSK |= (1<<OCIE1A);...
tak mam to teraz roziwiazane... chodzi mi zeby wlasnie wszystko bylo jak najmniejsze i pobieralo jak najmniej energii .... Dodano po 1 sory za pisanie jednego posta pod drugim, ale problem rozwiazany. moze sie komus to przyda. uzylem licznika /timera 1 w trybie CTC chodzi bez zadnych przerwan i obslugi softem. wystarczy wpisac tylko odpowiednie wartosci...
Problemik z PWM i Przerwaniem Timera. Czy możliwe jest żeby PWM sobie działał, a Timer generował normalne przerwanie? Z tego za zauważyłem to nie bardzo. TCCR1A = (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0); //8bit PWM, phase correct TCCR1B = (1<<CS12) | (1<<WGM12); TCNT1H = 0x57; TCNT1L...
Witam kolegów, sprawdzałem na różne sposoby, int0 ma mi dodac do pozycja++; ale nie dodaje... prosze o oswiecenie ;) /* układ ATmega 1MHz */ /* servo by dex */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> unsigned int roznicapozycji; unsigned int wynik; unsigned int dolnyzakres; unsigned...
31249 jest dla preskalera 256 i 1 s i dla częstotliwości wyjściowej 1Hz , natomiast 15624 jest też dla praskalera 256 i 1s ale dla częstotliwości 2Hz To dopiero miszmasz... Trzeba uporządkować...moja wersja to przerwanie od timera (gdy wartość rejestru OCR1A zrówna się z stanem licznika) co 1s (1Hz). Przy generacji przebiegu(a więc zmieniając stan...
Witam. Mam problem z kodem. Wszystko się kompiluje ale zawartość funkcji void wyswietlwynik(float dana) nie uruchamia się. Jeśli zawartość tej funkcji jest w pętli while(1) wszystko jest ok [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "HD44780.h" #include "HD44780.c" float adc; void inicjalizacjatimerow()...
Witam Wiem że temat był już przerabiany wiele razy, jednak nadal nie mogę dojść co robię nie tak. Chcę zbudować układ fazowej regulacji mocy. Zrobiłem schemat do wykrywania 0 oraz sterowani przez Moc 3043. Niestety udało mi się uzyskać jedynie żarówkę słabiej świecącą na dodatek lekko mrugającą. Program napisałem na atmege 8. Pwm do 100 us zwiększa...
Witam, Próbuję ustawić PWM w Atmega 8. Potrzebuję impulsy co 20ms o długości od 1 do 2ms, sterujące serwomechanizmem. Próbowałem ustawić tak: #include <avr/io.h> #include <avr/interrupt.h> int main( void ) { DDRD = 0xFF; PORTD = 0xFF; DDRB = 0xFF; TCCR1A = ( 1 << COM1A1 ) | ( 1 << WGM11 ); TCCR1B...
Witam. Pewnie zabrzmi to głupio aczkolwiek lubię się upewnić czy pewne rzeczy robię dobrze czy też źle. Jako iż nie dysponuję w tym momencie pod ręką programatorem to nawet nie mogę sprawdzić czy dobrze piszę czy nie. Rozchodzi się o zmianę programu napisanego na Atmegę16 tak aby pasował do Atmegi8. Jest to nadajnik podczerwieni o określonej częstotliwości...
Witam forumowiczów :D! Tworze projekt na zaliczenie - prostą perkusje elektroniczną, która posiada 12 przycisków, czytnik kart SD i wyjście PWM podpięte przez wzmacniacze do gniazda jack. Wszystko do momentu odtwarzania dźwięku działa poprawnie - wartości z pliku czyta prawidłowo (przetestowane na diodzie). Problem pojawia się gdy zaczynam odtwarzać...
Próbuje zrobić czujnik ruchu przy użyciu TSOP1736 i LD271. Atmega taktowana jest wewnętrznym oscylatorem 8MHz. Mam taki kod: [syntax=c] #define F_CPU 8000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = (1<<PD5); OCR1A = 111; // wartość wpisana do OCR1A TCCR1A |= (1 << COM1A0); // przy zrównaniu przełacz...
Bardzo proszę o pomoc w zaprogramowaniu ATMEGI 16 ,mam taki programator http://link_skasowano i taki program: Program: $regfile = "m16def.dat" $crystal = 8000000 On Oc1a Przerwanie Dim Fzad As Word , Focr As Word , Temp As Word Dim Wsk As Bit Config Adc = Single , Prescaler = Auto , Reference = Avcc Ddrb.1 = 1 ' DB.1 - wyjscie Ddrb.0 = 0 '...
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 dopiero zacząłem przygodę praktyczną z mikrokontrolerami padł wybór na programowanie w C oraz na rodzinę Atmela(najwięcej przykładów oraz opisów). Mam pewien problem z ich obsługą chciałbym zrobić przycisk za pomocą którego bym wyłączał(reset) lub załączał(set bez trzymania przycisku) jakieś wyjście. Napotkałem na pewne utrudnienia pomimo tak...
Witam, Zrealizowałem przerywacz podwyższający napięcie z 5 V do 10 V, który jest sterowany atmegą a program napisałem w języku C, lecz mam problem ze stabilizacją napięcia wyjściowego przy zmianach obciążenia. Napięcie przy dużych zmianach obciążenia potrafi wzrosnąć na chwile nawet o 10 V. Sterowanie wypełnieniem PWM zrealizowałem w przerwaniach poprzez...
O faktycznie coś skiełbasiłem... Chyba tak i to okropnie! Probowałem to przełozyć na timer 1 i bascom wali błędami... STR 88: Fpwm = Fcpu/2x preskaler - (1-OCRnA ) OCRA to rejestr ... wiec trzeba mu wpisać parametr.. Stosujesz błedny wzór na częstotliwośc Fast PWM dla Timera1 ; Poprawny wzór jest ze str 91: http://obrazki.elektroda.pl/1495204000_1...
Witam, napotkałem problem dotyczący generowania od dwóch do czterech sygnałów PWM na dwóch timerach - 8 i 16 bitowym. Posiadam Atmegę 328p z kwarcem 16 Mhz. Timer 8 bitowy ma generować przerwanie z czestotliwością 800 Hz (po 200 Hz na kanał, przy obsłudze czterech kanałów.). Timer 16 bitowy ma generować przerwanie by w efekcie PWM miał szerokość od...
Co jest źle, czego brak ? Wymagany sygnał: PWM -|________|-----|________|----| SD ---|______|--------|_______|------| (SD przed TOP) sygnały wyprowadzone na LEDy. Problem: Brak sygnału PWM. (na pinie 3.3V non-stop) !!!!! - pin SD działa prawidłowo. - ATmega 16 -nie uszkodzona. - Płytka PROPOXu sprawna. Tu wycinki z programu. [syntax=c] #define PORT_PWMPORTD...
tccr1a atmega8 bascom tccr1a tccr1a bascom
zapala plaku laserjet wciąga papier pralka łożysko wymienny
prostownik rozruchem schemat prostownik rozruchem schemat
Husqvarna Automower, Worx Landroid – dwie pętle ograniczające, przełączanie stref koszenia robota Volvo XC70 2.4 Diesel 2007 – brak dźwięku w głośnikach drzwiowych, wzmacniacz, MOST, bezpieczniki