Ojj widze ze chyba chcesz za duzo na raz zrobic... TCCR0 = _BV(CS02) | _BV(CS02) ; Ani w jednej ani w drugiej atmedze nie jest to dzielnik przez 32. Nawet jak by tak bylo, to i tak masz gdzies to co pisalem wczesniej. Zostalo by ci 150 taktow zegara na wyjscie z przerwania i wykonanie maina, czy jest wystarczajaco byc moze, ale nie sadze...
Konfiguracja prescalera jest w TCCR0 B a nie TCCR0A.
Kod piszę "na sucho", więc lepiej sprawdź czy działa.[syntax=c] #include <avr/interrupts.h> void timer0_init(void){ TCCR0 = _BV(CS02); //Mode 0, normal operation, prescaler 64 TIMSK |= _BV(TOIE0); //Timer/Counter0 Overflow Interrupt Enable } volatile unsigned long millis=0; volatile unsigned int okresy_migania_ledow[4] = {100,200,300,400}; ISR(TIMER0_OVF_vect)...
Witam po przeszukaniu forum niestety nie rozumiem bądź nie umiem ustawić tych timerów. Zegar wewnętrzny 8MHz - Atmega128 w tym 1 potrzebuję około 1s TCCR1B |= (1<<WGM12) | (1<<CS12); TIMSK |= (1<<OCIE1B);//zezwolenie na przerwanie TCNT1 = 0; OCR1B = 32582; } ISR (TIMER1_COMPB_vect){ TCNT1 = 0; s_czas ++; } [/syntax] tutaj potrzeba...
TCCR0=0x07; // port G jako wejście Że co? int main(void) { char digit } Funkcja main obejmuje nawiasem kilka funkcji przerwań. To się w ogóle kompiluje? Pół biedy że funkcja main. Pętla while(1) to obejmuje! Po za tym to SIGNAL pozamieniaj na ISR. ISR jest nowsze i przez to zalecane (choć w sumie kodu wynikowego pewnie to nie zmieni). I przy okazji...
...przy 10000HZ na LCD wyświetla 0666... No to prawie jak liczba szatana :) if(licznik==4) { T1=TCNT1; utoa( T1, bufor1, 10 ); lcd_gotoxy(3,0); lcd_puts(bufor1); TCNT1=0; } Widzę, że dodałeś pozycjonowanie kursora, żeby wynik za każdym razem był wyświetlany w tym samym miejscu wyświetlacza. Trzeba by jeszcze...
DDRD|=(_BV(PB5) | _BV(PB6) | _BV(PB7)); DDRD|=(_BV(PE3) | _BV(PE4) | _BV(PE5)); Widzisz tu subtelną różnicę...? Działające wstawki dla pwm na Tim1 i Tim2: [syntax=c]void Timer0Init(void) { DDRB|=(1<<4); TCCR0 |= (1<<WGM01)|(1<<WGM00)|(1<... OCR0=0; } void Timer2Init(void) {...
Mam taki kłopot (Bascom + Atmega128) ; Korzystam z PWM w trybie FAST. Uruchamiam sobie to normalnie ; Tcnt0 = 0 Ocr0 = 0 Tccr0 = &B01101010 'timer0 in fast pwm mode, prescale = 8 10kHz Ocr0 = 0 Następnie zmieniam zależnie od potrzeb wypełnienie, przez wpis do OCR0. Na koniec wyłączam PWM ; Ocr0 = 0 Tccr0 = &B00000000 Tcnt0 = 0 PWM startuje zawsze od...
Podłaczenie to: Atmega128L, port PB6-rezystorek-dioda(katoda w stronę procka-zasilanko 5V int main(void) { // konfiguracja portów we/wy DDRE=0xFF; PORTE=0xFF; DDRB=1<<PB6; TCCR1A|=1<<COM1A1|1<<WGM10; TCCR1B|=1<<WGM12|1<<CS0; TIMSK=1; TCCR0=7; sei(); // inicjalizacja LCD lcd_init(); LCDclr();...
Testować czyli odczytywać stan? Bo one się nie zmieniają... :/ TIMSK &=~((1<<TOIE0)|... //wylaczenie przerwan ASSR |= (1<<AS0); //wlaczenie trybu asynchronicznego TCNT0 = timer0; TCCR0 = 0x05; //ustawienie preskalera na 128 while(ASSR&0x07); TIFR &=~((1<<OCF0)|(...
Witam Zrobiłem sobie taki PWM w oparciu o ADC [syntax=c] #include <avr/io.h> #include <util/delay.h> //definicja ADCIN (wejście ADC) #define ADCIN PF0 int main(int argc, char **argv) { int i=0; DDRB = 0b11111111; PORTB = 0b11111111; DDRF = 0b11111111; DDRF &=~(1<<ADCIN); /* TCCR0 |= (1<<WGM01); // Inicjalizacja PWM TCCR0...
Słuszna uwaga. Wziąłem na tapetę funkcję delay: [syntax=c] #define F_CPU 4000000UL #include <avr/io.h> #include <avr/iom128.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t i=0; void _testdelay_ms(double __ms) { uint16_t __ticks; PORTA|=0x10; //swieci double __tmp = ((F_CPU) / 4e3) * __ms; // problem? PORTA|=0x02;...
Posiadam przykład kodu na atmega16 (coś mnie ten procek prześladuje :/) i chcę to przerobić na atmega128. Pod atmega16 wygląda on następująco: .cseg RESET:cli clrr30 outEECR, r30 outMCUCR, r30 ; watchdog na ok.1s ldir31, (1<<WDE) | (1<<WDP2) | (1<<WDP1) outWDTCR, r31 ; inicjalizacja stosu ldir31, high(RAMEND) outSPH, r31 ldir31, low(RAMEND)...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
Używam dwóch przerwań - TCCR0 do obsługi LED displaya i TCCR2 do operacji I/O. Wyświetlacz powinen mięć możliwość wyświetlania napisów które mrugają. A operacje IO są raczej asynchroniczne ale pojedyncza może trwać dłużej niż pojedyncze mrugnięcie wyświetlacza czyli "zamrozi" go w przypadku użycia display_routine() i i_o_routine() jedna po drugiej w...
Ten kod jest napisany dla ATmega103 ( niedostępny już w handlu) a jego następca to ATmega128. Poniżej poprawki dla WinAVR ( ten kod był dla kompilatora IAR): 1. #include <iom103.h> #include <ina90.h> ma być #include <avr/io.h> #include <avr/signal.h> 2. type def struct{ ma być typedef struct{ 3. interrupt /**** A V R A P P L...
Witam, wzorując się na książce "Mikrokontrolery AVR w praktyce" powstał taki oto kod #include <io.h> #define tau0 6 int main(void){ char licznik = 100; DDRB = 0x01;//wyjsciem generatora bedzie PB0 TCNT0 = tau0;//stala czasowa TCCR0 = 1; //timer0 bedzie pracowal bez preskalera while(1){ while((inp(TIFR)...
Witam. Podłączyłem kartę SD do uC ATmega128. Problem jaki się pojawił jest z gatunku tych najmniej ciekawych - po podłączeniu zasilania, karta raz się dobrze inicjalizuje, następnie zapisuje, odczytuje, dopisuje do plików wszystko co bym chciał, jednakże już za innym razem po uruchomieniu układu inicjalizacja karty zwraca błąd. A więc raz działa, a...
Spoko, tylko to jest na ATmega128. Co do kart pamięci to musiałbyś napisać obsługę sam. Generalnie poczytaj notę katalogową. //inicjalizacja Timera 0 jako generatora PWM void Timer0_PWM_mode() { DDRB |= (1<<4); TCCR0 |= (1<<WGM00) | (1<<WGM01) | (1<<COM01) | (1<<CS00);...
Witam! Stworzyłem kiedyś projekt na atmega32 w którym za pomocą dwóch timerów 8-bitowych regulowałem dwie częstotliwości wyjściowe ustawiając timery w tryb ctc Tccr2 = &B10011001 Ocr2 = Wartosc Tccr0 = &B10011001 Ocr0 = Wartosc1 wszystko idealnie działało jednak z czasem pojawiła się potrzeba aby regulować częstotliwość z większą dokładnością. Postanowiłem...
Jest komentarzem ponieważ w tym przykładzie nie używam przerwań. sprawdzam czy licznik w ogóle ruszył: if (TCNT2 > 100) PORTC &= ~_BV(PC2); Nie spodziewałem się, że w tak krytycznej sekcji datasheetu może być błąd. W mojej wersji noty katalogowej (pobranej ze strony atmela, jako najnowsza) najpierw jest opisany licznik TIMER2(8bit),...
Czyli rozumiem iż mam podmienić te dwie funkcję w "1wire_basic_UART.c" - a co z resztą zaczynając od main.c czyli: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include "LCD.H" #include "menu.h" #include <avr/interrupt.h> #include "buttons.h" #include <stdio.h> #include <string.h> #include <util/atomic.h>...
Mi nie chodzi konkretnie o przerwanie. Jest tak: Timer t0 pracuje w trybie asynchronicznym i co 0.5s generuje przerwanie Ja w tym przerwaniu sprawdzam zawartosc rejestru TCNT odpowienio przeliczam ilosc impulsow ktore zliczyl i wyswietlam. SIGNAL(SIG_OVERFLOW0) { Rpm = TCNT2; Speed = TCNT1L; outp(0x00, TCNT3); outp(0x00, TCNT1L);...
Wybacz, ale nie rozumiem współpracy tych linii kodu. Zastanów się nad użyciem [syntax=c]ISR(TIMER0_OVF_vect) { timer0_licz--;[/syntax] i dalej, cała funkcja [syntax=c]void delay_500ms(void) { ATOMIC_BLOCK(ATOMIC_FORCEON) { TIFR |= _BV(TOV0); //zerowanie flagi przerwania (zapis 1) TIMSK |= _BV(TOIE0); //aktywacja przerwania od przepełnienia TIMER0 (OVF)...
teraz działa poprawnie [syntax=c] int main( void ){ // *******************RTC******************... TIMSK &=~((1<<TOIE0)|(1<<OCIE0... ASSR |= (1<<AS0); TCNT0 = 0x00; TCCR0 = 0x05; while(ASSR&0x07); TIMSK |= (1<<TOIE0); __enable_interrupt(); //sei while(1) { MCUCR = 0x38; __sleep(); TCCR0=0x05; while(ASSR&0x07); } }...
1. Nie widzę deklaracji zegara systemowego więc skod kompilator będzie wiedział jak zrobić delay_100 ms W CodeVision ustawia sie to we wlasciwosciach projektu 2 Jesteś szybki jak zobaczysz na diodzie jak sie zapala i gaśnie co 0,1s Jak zmienie na 0,25s to i tak nic to nie zmienia, i tak nie działa /***************************************...
udalo sie problem rozwiazac :) nalezalo jeszcze w timerze 2 rzeczy zmienic, bardzo dziekuje za pomoc :) zamykam temat [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include "d_led.h" volatile uint8_t cy1; volatile uint8_t cy2; volatile uint8_t cy3; volatile uint8_t cy4; volatile uint8_t licznik;...
Witam! Mam taki dość nietypowy problem. Kontroler ma reagować na jedno z trzech przerwań: TIMERa 0 i dwóch zewnętrznych (czujki ruchu). Te przerwania zewnętrzne zliczają liczbę reakcji czujek, natomiast TIMER 0 ma odmierzać czas i dzięki niemu co kilka sekund mają być wyświetlane statystyki. Bez TIMERa 0 wszystko działa ok, ale statystyki lecą cały...
#include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
Witam! Postanowiłem przetestować tryb asynchroniczny timera0 z podłączonym kwarcem 32768 Hz na płytce #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" volatile int time=0; int main (void){ TCCR0|=(1<<WGM01)|(1&l...
Witam. Mam problem z inicjalizacją wyświetlacza LCD w trybie 8 bitowym. Jeżeli ktoś czuje się dobrze z asemblera i ma ochotę pomóc mi znaleźć problem to będe bardzo wdzięczny. Układ pracuje z kwarcem 16MHz i zasilany jest napięciem 5V .include "m128def.inc" ;KONFIGURACJA LINII ATMEGA128 .EQUK_ST_LCD_DB=DDRC;Kierunek portu STEROWANIA WYSWIETLACZEM...
Może najpierw parę słów wprowadzenia : Atmega128 - jej główne zadanie to sterowanie silnikiem DC, za pomocą tranzystora mosfet. Zasadniczo chodzi tylko o ON/OFF, dodany jest jedynie softstart PWM. Tranzystor ten sterowany jest z PB4 (OC0). Atmega zaś taktowana kwarcem 14.745.600 Hz. Dodatkowo , wykorzystane są 3 kanały ADC, w tym : ADC1 - do pomiaru...
Witam serdecznie Ostatnio zacząłem zabawę z programowaniem kontrolerów i od razu natrafiłem na dość dziwny (przynajmniej dla mnie) błąd. Mianowicie zauważyłem, że nie są przyjmowane przerwania od timera 0... Oczywiście na starcie programu wykonałem instrukcję odblokowującą globalne przerwania (asemblerowskie sei() ) ale nie dało to żadnego rezultatu,...
Witam Jestem tu pierwszy raz, więc się przedstawię Mam na imię Michał jestem z Gdańska dopiero zaczynam właściwie przygodę z programowaniem uC aktualnie mam ATmega128 Programuje w języku C Mam taki problem z ustawieniem PWM dla Timera 3 według Datasheet ze stron 132-136 powinienem ustawić WGM32 oraz WGM30 COMnA1/COMnB1/COMnC1 oraz CS31 znajduja sie...
Cześć, Napisałem program, który uruchamia 16-bitowy Timer (TCNT1 w ATmedze 128). W moim programie Timer zlicza przez 128ms (dolicza w tym czasie do wartości 1000). Następnie wyświetla młodszy i starszy bajt Timera na wyświetlaczu alfanumerycznym (odpowiednio wartości dziesiętne 232 oraz 3). Do tej pory wszystko działa, ale gdy chcę wysłać odczyt każdego...
Witam męczę się już od dawna z przerwaniem od timera 0. Wymyśliłem sobie że po przepełnieniu licznika 0 ma nastąpić przerwanie. Licznik 0 liczy od 0-255 chciałem miec kontrolę na częstotliwością wywoływania przerwania więc gdy przerwanie jest wykonywane wpisuję od razu do licznika konkretną liczbę tak by miał on mniej do zliczania. Problem polega na...
Może ktoś pomoże, dlaczego usart atmega 128 nie wysyła nic na wyjście RS TxD. Uart jest ustawiony, po wpisie do UDR0 nie wychodzi nic na wyjście TxD, nie wchodzi również w obsługę przerwania od nadajnika. SP. oto program: [syntax[syntax=asm] .nolist .include"m128def.inc" .list .defAL = r24 .defAH = r25 ;akumulator .equ SYS_FREQ_HZ = 8000000 .equ RS232_BAUD_RATE...
Twoje obliczenia są (z grubsza) OK, jednak w mikrokontrolerze ATmega328 rejestr TCCR0A nie posiada bitów CS00 oraz CS02. Bity te znajdują się w rejestrze TCCR0B. Notabene, bitów WGM0n nie musisz zerować. W trakcie Power on Reset zostają one ustawione na wartość 0. Zerowanie może być konieczne tylko wtedy, kiedy wcześniej sam ustawisz je na wartość...
Mam problem z wysyłaniem sms, wykorzystuję atmege128 i moduł sim900 na płytce Evb v1.01_pcb , proszę o rzucenie okiem na kod gsm.c [syntax=c]// PLIK: gsm.c // Dołączone biblioteki #include <avr/io.h> // Biblioteka obsługująca peryferia mikrokontrolera #include <avr/interrupt.h>// Biblioteka obsługująca przerwania mikrokontrolera #include...
poprawiłem swój stary kod: //Piny do pc //Data #define KBD_DATA_PORT PORTC //pull #define KBD_DATA_P 5 //pull #define KBD_inDATA_PIN PIND #define KBD_inDATA_P 1 //Clk #define KBD_CLK_PORT PORTC //pull #define KBD_CLK_P 4 //pull #define KBD_inCLK_PORT PIND #define KBD_inCLK_P 3 //pull to pin podłączony do tranzystora ściągającego do 0 //podobnie jak...
#include <inttypes.h> #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <avr/iom32.h> #include <avr/interrupt.h> #include <string.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "HD44780.h" //definicje zmiennych volatile int ms, s, m, h, znacznik; char buf[256];...
Oto skomentowany kod: [syntax=c]int main(void) { //DDRD |= ((1<<PD0) | (1<<PD1)); sei(); TIMSK |= (1<<TOIE0); //Przerwanie overflow dla timer0 TCCR0 |= (1<<CS01); //Preskaler 8 TCNT0 = 131; //Początkowe wypełnienie timera while(1) { lcd_init(); } return 0; } ISR(TIMER0_OVF_vect) { TCNT0 = 131; //Początkowe wypełnienie timera...
witam, mam delikatny problem. wykorzystałem kawałek programu z internetu w celu stworzenia termometru. niestety w asemblerze jestem kompletnym laikiem aczkolwiek me ambicje kazały mi stworzyć program w tymże języku. [syntax=asm] .include "m128def.inc" .DSEG DV_T0:.byte1 CNT:.byte1 .eseg .cseg .org0 .def COUNTER=r17 .def DATA=r18 .def LSB=r19 .def MSB=r20...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
Witam w swoim projekcie do sterowania silnikami krokowymi wykorzystuję joysticki potencjometryczne. By określić, w którą stronę został on wychylony mierzę napięcie na potencjometrze przetwarzając je w przetworniku analogowo cyfrowym. Silniki działają bez zarzutu, tak jak zakładałem. Problem występuje jedynie przy silniku numer 1. Dokładniej po załączeniu...
z jakiegoś swojego starego projektu zerknąłem na ustawienia i mam tccr0a=a3, tccr0b=2 tccr1a=a1, tccr1b=2 tccr2a=a1, tccr2b=2 przy nich na 16MHz pwm'y chodzą 4kHz (możliwe ze jeden z nich na 8Khz)
Na początek kawałek kodu: [code] TCCR0A = _BV(WGM01); TCCR0B = _BV(CS00) | _BV(CS02); OCR0A = 156; TIMSK0 = _BV(OCIE0A); ISR(TIMER0_COMPA_vect) { PORTB ^= _BV(1); // do pinu zapięta LED }[code] Procesorek ATmega168 taktowany kwarcem 16000000. Chcę zmusić timer aby generował przerwania z częstością około 100 Hz. Czy powyższe ustawienie jest poprawne?...
Witam, zerknij https://sites.google.com/site/qeewiki/bo... [syntax=c]// this code sets up counter0 for an 8kHz Fast PWM wave (at) 16Mhz Clock #include <avr/io.h> int main(void) { DDRD |= (1 << DDD6); // PD6 is now an output OCR0A = 128; // set PWM for 50% duty cycle TCCR0A |= (1 << COM0A1); // set none-inverting...
Najprościej to chyba tak: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define TIMERSTART 6 volatile uint8_t FLAGA_50 = 0; volatile uint8_t FLAGA_1000 = 0; // funkcja obslugi przerwania TIMER0_OVF 8MHz / 64 * 250 wychodzi co 2ms // dla innego taktowania nalezy ustawic inny preskaler i/lub inne liczniki stawiania flag ISR(TIMER0_OVF_vect)...
Witam, tak się zastanawiam - może mi ktoś podpowie dlaczego mam taki dziwny jak na razie dla mnie efekt, że ten samiuśki program , który napisałem dotąd na ATmega8 i zajmuje już prawie całą pamięć flash bo 95% czyli ok 7846 bajtów - po skompilowaniu dla procka ATmega168 - nagle zajmuje o nieco ponad 1kB !!!! więcej w pamięci flash ???? zmiany, które...
Witam, Używam sterownika do silnika DC. Sterowanie polega na podanie odpowiedniego wypelnienia PWM na wejscia AIN1 AIN2. Wejscia AIN odpowiadaja za obroty w lewo/prawo. Uzywam atmegi328p. http://www.atmel.com/Images/doc8161.pdf Zasada dzialania (obroty w prawo/lewo): [syntax=c]OCR0A = 255; //PD6 // hamulec/start OCR0B = 0; //speed //zmiana kierunku...
Bingo! Przeoczyłem tę funkcję i nie zmieniłem w niej rejestru TCCR0B na TCCR2. Teraz wszystko śmiga jak należy. Wcześniej przerobiłem przykład w ten sposób, że Timer0 zastąpiłem Timerem1, a Timer1, Timerem2 i działało, ale ze względu na inne rozdzielczości timerów wartość w drugiej linii była zmieniana znacznie szybciej niż w pierwszej. Teraz jest chyba...
Czołem! Chciałem napisać własną funkcję delay_ms w oparciu o timer procesora Atmega168. Namęczyłem się z tym strasznie, aż w koncu wziąłem gotowca - trochę przerobiłem - i dochodzę do takich wniosków, że Ten kod nie działa(nie wiem czemu) - próbuje w nim mrygać diodą przypięta do portu B za pomocą odczekiwania 10[jednostek czasu] poprzez wywołanie funkcji...
Witajcie, Problem powinien być trywialny a nie jest. Dotychczas stosowałem auto trigger ADC na ATtiny13 i działało to przewidywalnie według datasheeta, ale kod przeniosłem na ATmege168 i działać przestało, mimo że wszystko ustawione według dokumentacji. Po krótce: - uruchamiam timer0 w trybie CTC by zdarzenie Compare Match A zachodziło co 250us (4kHz),...
Skorzystałem z tego co napisaliście i mam taki program : [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define LED1 (1<<PB0) #define LED2 (1<<PB1) #define KLAWISZ (1<<PD7) volatile uint8_t PRZYCISK1_WCISNIETY; void Konfiguracja(void){ TCCR0B |= (1<<CS02) | (1<<CS00);...
Udało mi się odtworzyć .wav 22050Hz. Jest bardzo fajnie, muzyczka gra w bardzo fajnej jakości, ALE... słyszę cały czas szum(pierdzenie), który jest jakby nałożony dodatkowo w muzyczce, taki odrębny szum. Jak go wyeliminować? Aktualnie kod odpowiedzialny za odtwarzanie przedstawia się tak: [syntax=c] // Konifguracja muzyczki void Music_Init() { DDRB...
(...) Więc pytanie- zastosujesz rezonator kwarcowy w tym rozwiązaniu czy będziesz dalej próbował coś działać z generatorem RC? Zdecydowanie kwarc. Czym większa stabilność pomiaru częstotliwości tym większy zasięg wykrywacza. Pozdrawiam Dodano po 3 Dla uzupełnienia tematu działający prototyp: Filmik: http://youtu.be/bQox3S40gTE http://obrazki.elektroda.pl/2340370400_1...
Witam. Otóż mam taki problem ;) Dwa czujniki DS18b20 podłączone są do osobnych pinów Atmegi168, PINB0, PINB1. Chciałem to zrobić w ten sposób aby w przerwaniu ustawiana była flaga (co sekundę) która realizowana była w pętli głównej while(1), w ten sposób, aby co sekundę na zmianę wykonywany został convert oraz odczyt. Wydaje mi się, że wszystko zrobiłem...
[syntax=cpp] #include "avr/io.h" #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "myuart.h" #include "mk_term.h" volatile uint16_t impuls; //zmienna która jest liczbą impulsów przed wyrezerwanie timera czyli z przejsciem czujnika volatile uint16_t obrot; volatile uint16_t i; volatile uint8_t kawalek;...
Witam wszystkich, robię mały projekt do którego używałem Atmegę8. Zaczyna mi brakować pamięci więc stwierdziłem, że wymienię ją na Atmegę328. Niestety jest trochę zabawy z przerobieniem kodu, po pierwsze w Atmega328 nie można używać PD0 itp, tylko PORTD0. Po drugie timery ustawia się innymi rejestrami. Ogólnie program sobie przerobiłem, niestety została...
Witam! Nigdy wcześniej nie miałem styczności z I2C. Znalazłem w internetach regulator BLDC który udało mi się uruchomić(po przeróbkach). No ale regulator jest sterowany danymi z i2C. A ja totalnie tego nie ogarniam. Na obecną chwilę działa tylko z prędkością, którą wpiszę w zmienną przy programowaniu. Możecie dać mi jakąś rybę, jak mam wysłać dane do...
Witam, proszę o info czemu mi to nie działa. Działenie powinno być takie: przerwanie zewn INT4 powoduje podanie kolejno 67, 67 i 66 impulsów w kolejnych uruchomieniach. Realizuję to przez załączenie T0 w obsłudze INT4. T0 odlicza 250us i ustawia zmienną i aby wykonał się switch() w pętli głównej. Na wyjściu PE2 chcę uzyskać 67 pulsów o częstotliwości...
Witam koledzy! Mam problem z pomiarem temperatury, przeszukałem forum i internet n razy w poszukiwaniu odpowiedzi ale nie natrafiłem na żaden trop. Sądzę, że błąd leży gdzieś w kodzie. Wynik pomiaru docelowo jest prezentowany na LCD 2x16. Pomiędzy VCC a DQ mam rezystor 4,7k zgodnie z notą DS'a (nie w trybie pasożytniczym) Atmega podłączona zgodnie z...
tccr0 atmega tccr0 atmega32 atmega8 tccr0
ucieka głos chłodziarko zamrażarka polar cz340 montaż front zmywarka
amica pa4560a420 przełącznik hyundai
Tryb serwisowy zmywarki Electrolux ESL 7510RO - jak wejść i nawigować Samsung BN59-01264B Remote & Wi-Fi Module Details