To powinno być trochę prościej. Propozycja poniżej. [syntax=c]// F_CPU musi być zdefiniowane przed nagłówkami, które jej używają. #define F_CPU 3000000UL // Włączanie plików nagłówkowych int main(void) { // Ustawienie rejestru CLKPR na podział przez 4 (0b00000010) CLKPR = (1 << CLKPCE); CLKPR = 2; // Od tego momentu procesor pracuje z częstotliwością...
Jednakże.... Podłączyłem oscyloskop i wyniki na wyjściu niepojawiają się co 1s, tylko znacznie częściej. Co więcej...w debugerze jest okienko Stop Watch i widzę, że ta 1s, która miała być odmierzana, w rzeczywistości jest to ok. 2000 us, po takim czasie następuje przerwanie. Zatem czy kolega michalko12 źle mnie podał wartości, czy też ja to źle intepretuje?...
ale one mówią na jaki mikrokontoler skompilowano program. doprawdy? Kolega jak zwykle "ciekawe" rzeczy pisze https://obrazki.elektroda.pl/2928104400_... Ciekawe skąd microchip wiedział jak będziesz kompilować i wgrać to do uC w fabryce Sprawdzałeśs co zwróci np to ? [syntax=c]sprintf_P( txt, PSTR( "AVR %02%02X%02X" ), SIGNATURE_0,...
Ściślej manual mówi o odpowiedniej sekwencji zmiany prescalera: [syntax=C]CLKPR = _BV(CLKPCE); CLKPR = 0;[/syntax] Przy czym pomiędzy tymi nie może pojawić się żadne przerwanie. Pierwsze jest do odblokowania możliwości zmiany prescalera, drugie jest właściwą operacją zmiany.
Działa po zmianie dzielnika na 256 :) Jest jeszcze tylko jeden mały problem: Częstotliwość PWM to ok. 31kHz (8MHz takt). Nie ma możliwości uzyskania częstotliwości PWM ok. 10-15kHz (max. f sterowania tranzystorami IGBT) ponieważ preskaler oferuje dzielniki tylko 8, 64 itp. Tutaj przydatny byłby dzielnik przez 2. Da się to jakoś "przeskoczyć" bez stosowania...
Używam gotowego oprogramowania ze strony "http://www.tuxgraphics.org/" C znam w miarę ale jeszcze nie ogarnąłem wszystkich poleceń z Uc. Więc ustawienie fuse bit mam standardowe lf:60 hf:DF no i w kodzie jest ustawienie na 8MHz. [syntax=cpp] CLKPR=(1<<CLKPCE); CLKPR=0;][/syntax] Jeszcze zastanawiałem się nad napięciami bo podaje delikatnie ponad...
ale w praktyce przy 5-6 kolorach to nie działa. Przy 4 kolarach jest ok? Co oznacza w praktyce nie działa? Jakie jest zachowanie programu? Oczywiście na symulatorze nie uruchamiałeś. W ogóle ten program jakiś dziwny. Robisz PWM bez przerwań? Cokolwiek zmienisz w main program będzie generował inny przebieg. to: [syntax=c] // set clock divider to /1...
Mozna spokojnie. U siebie (tez Tiny2313) zmieniam podczas pracy nawet taktowanie. Jeśli uC u mnie pracuje na 8MHz bo musi wygenerować rózne wysokie częstotliwości to podczas snu brał 2mA. Teraz przed uśpieniem dobieram się do rejestru CLKPR - Clock Prescale Register. Zasada przestawiania jest podobna jak w WD. Trzeba najpierw ustawić CLKPCE: Clock Prescaler...
Tak jeszcze powrócę do tematu bo mam taki zapis jak usypiam [syntax=csharp] if(Sleep_ON){ //////////////////// wylacz WDT wdt_disable(); //////////////////// uspij mikrokontroler set_sleep_mode(SLEEP_MODE_PWR_DOWN); power_all_disable(); // wylacz wszystkie peryferia cli(); // wylacz przerywania sleep_enable(); CLKPR = bit (CLKPCE); // zmniejsz zegar...
Znalazłem jeszcze jedna drogę, czyli pozostawienie starego kwarcu 11,0592 MHz i podzielenie jego prędkości przez 2 rejestrem CLKPR: https://obrazki.elektroda.pl/3960770800_... widzę, że flash/eeprom będą taktowane 2x szybszym sygnałem niż CLKsys. Czy to problem? Daje to idealne dopasowanie dla UARTu: https://obrazki.elektroda.pl/6936445000_...
Witam, nie znam się za bardzo na mikrokontrolerach i proszę o pomoc. Sprawa dotyczy przeróbki taktowania atmegi na zewnętrzny kwarc z obecnego taktowania przez CLKOUT układu ENC28j60 Obecny schemat wygląda jak ten http://www.tuxgraphics.org/electronics/2... Oprócz przeróbki elektroniki (tu wiem co należy zrobić) powinienem także...
Witam, zaopatrzyłem się w interface pod usb i podłączyłem uC pod komputer, tak jak kolega mówił - nie miało to prawa działać ;] Aktualnie dobrze działa echo przez terminal oraz podłączenie odbiornika GPS pod komputer - wszystkie ramki dobrze odbieram. Niestety nie rozwiązałem problemu z dzielnikiem - muszę łączyć się z układem przy baud 1200, a po dodaniu...
No więc porównajmy Twój kod z tym, co zawiera dokumentacja. To avoid unintentional changes of clock frequency, a special write procedure must be followed to change the CLKPS bits: 1.Write the Clock Prescaler Change Enable (CLKPCE) bit to one and all other bits in CLKPR to zero. ldi r16, 0b10000000 out clkpr, r16 2.Within four cycles, write the desired...
Piszę program do sterownika latarki, wciśnięcie przycisku na czas poniżej sekundy ma zmienić tryb świecenia- zmienia zmienną "l". nie działa mi to za bardzo, tzn. raz działa, raz nie, bez względu na to, czy przyciskam switcha któtko, czy trochę dłużej. Gdy w main ustawię INT0 na zbocze opadające, to nie reaguje w ogóle, dopiero zmiana na zmianę stanu...
Kod mojego przerwania wygląda tak. Program działa w rezultacie tak jak bym chciał, ale samo wykonanie przerwania zajmuje trochę czasu. Zoptymalizowałem kod tak jak potrafiłem i w tym momencie liczę na Waszą pomoc. SW_pwm_12_channels: volatile unsigned char chanell[12]; volatile const pwm_res = 32; volatile unsigned char counter = 0; #define...
Witam! Nie działa mi taki kod: [syntax=c]#include <avr/sleep.h> #include <avr/power.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/wdt.h> int watchdog_counter=0; void watchdog_init() { cli(); wdt_reset(); WDTCSR |= (1<<WDCE) | (1<<WDE); WDTCSR |= (1<<WDIE)...
elektronik000 uruchomiłem ten twój cały projekt i udało się odczytać tą rewizje, jest taka sama jak twoja czyli 0000 0110. Nie wiem czemu ale musiałem mieć w AVRStudio cały twój projekt, bo jak wgrywam z hex-a to coś jest nie tak. Połączyłem się przez rs-a do atmegi i teraz próbuje wysyłać co pewien fragment kodu pewien znak do terminala na kompie....
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 Zbudowałem układ wg schematu - po małych korektach http://obrazki.elektroda.net/41_11992945... A następnie wgrałem program (zamieszczony poniżej) do ATTINY25. Po podłączeniu zasilania uruchamia się demo (miganie diody na PB3) oraz demo2 (miganie diody podczerwonej na PB0). Po zakończeniu dema2 dioda podczerwona podpięta do PB0 świeci...
Na wewnętrznym to się nie ma co dziwić że źle chodzi a do kalibracji i tak potrzebny jest kwarc nawet wystarczy zegarkowy na Timer2 A to procedura kalibracji dla ATmega169 /***************************************... * * Function name : OSCCAL_calibration * * Returns : None * * Parameters : None * * Purpose...
Programik dla AVT3500 z ATTiny2313: ; Henryk Więsyk ; 16.10.2007 ; wersja 1.0 - przerobiona na ATTiny2313 ; Dioda do masy z OC0A ; Wewnętrzny oscylator ustawiony na 1MHz (RC(at)8MHZ + CLKDIV8) .include "tn2313def.inc" ;***************************************... ; Definicje ;***************************************... .def czas1...
Witam! Napisałem taki krótki, prosty program: main.c: [syntax=c]#include <avr/io.h> #include <avr/sleep.h> #include <avr/power.h> #include <avr/interrupt.h> #include "adc.h" #include "psave.h" extern volatile uint8_t seconds; extern volatile int sleep; int main() { PORTB = 0x00; PORTD = 0x00; PORTC = 0x00; clock_prescale_set(clock_div_8);...
Jeśli chodzi o sprzętowego PWMa to chyba pokuszę się o AVR136, tylko zamiast atmegi wykorzystam attiny2313. Zasymulowałem sobie to na razie tylko w proteusie i całkiem ładnie to śmiga :) ________________________________________... Ok. Potrzebuje Waszej pomocy. PWMy ładnie działąją (12 kanałów), ale nie wiem jak zwiększyć częstotliwość tego PWMa....
Witam! Mój problem polega na tym, że muszę podłączyć atmege do Internetu. Posiadam gotowy moduł uruchomieniowy EvB 4.3 + Ethernet v2. Sterownik oparty na atmedze ma sterować temperaturą wody i jeśli chodzi o jego działanie to wszystko jest oki. Za pomoca przycisków zmienia się temperaturę zadaną i serwo zmienia swój kąt obrotu. Uruchomiłem też na niej...
W wątku http://www.elektroda.pl/rtvforum/topic24... padła sugestia że da się wykorzystać SPI dla pobierania próbek z szybkością dużo większą niż to jest możliwe zwykłymi metodami, postanowiłem to sprawdzić - a jako że tamten wątek został już zamknięty, opisuję moje wnioski w nowym wątku, może sie to komuś kiedyś przyda. 1. SPI może pracować w...
monitor mleko źródło połączyć równoległy alarm ampio schemat
bateria parkside styki interfejs diagbox
Nakrętka mocująca GX16-8 – gdzie kupić, zamienniki, sklepy TME, RS, Allegro, Kenwood Szlifierka Bosch GWS 17 dymi i traci obroty - przyczyny i rozwiązania