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...
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...
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 Oprócz przeróbki elektroniki (tu wiem co należy zrobić) powinienem także zmienić fusy i pewnie także program. Ktoś podpowie jak? W programie...
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...
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&=~...
Znalazłem jeszcze jedna drogę, czyli pozostawienie starego kwarcu 11,0592 MHz i podzielenie jego prędkości przez 2 rejestrem CLKPR: widzę, że flash/eeprom będą taktowane 2x szybszym sygnałem niż CLKsys. Czy to problem? Daje to idealne dopasowanie dla UARTu: oraz, jeżeli dobrze rozumiem, mieszczę się w bezpiecznym obszarze charakterystyki Fcpu/Vcc: Procesor...
Witam, Mam problem z uruchomieniem modułu And-Eth /***************************************... * vim:sw=8:ts=8:si:et * To use the above modeline in vim you must have "set modeline" in your .vimrc * Author: Guido Socher * Copyright: GPL V2 * * Ethernet remote device and sensor * * Title: Microchip ENC28J60 Ethernet...
Ś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.
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...
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...
W wątku 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 dwóch trybach - Master i Slave. który z nich będzie...
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....
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...
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?...
Witam Zbudowałem układ wg schematu - po małych korektach 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 światłem ciągłym (przynajmniej tak widać przez aparat...
Powiem szczerze, że średnio to widzę. Docelowy projekt zakłada podświetlenie lamp 6S33S diodami 3W przez centralny otwór w ceramicznej podstawce septarowej. Efekt uzyskany tym programem jest nieco "odpustowy". Sporo ciekawiej wyglądałoby podświetlenie kolorem bursztynowym i od czasu do czasu zmiany koloru, intensywności i częstotliwości jak na załączonym...
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...
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....
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...
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! 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)...
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);...
ale one mówią na jaki mikrokontoler skompilowano program. doprawdy? Kolega jak zwykle "ciekawe" rzeczy pisze 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, SIGNATURE_1, SIGNATURE_2 ); [/syntax] Tu masz plik "iom168pa.h":...
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...