PORTC &= ~_BV(3); - wyzerowanie PORTC |= _BV(3); - ustawienie i jeszcze: PORTC ^= _BV(3); - zmiana stanu.
Witam. Możliwe ,że nie ustawiłeś portów na wyjścia
Poczytaj sobie jakiś poradnik o C, np. linkowany przez kol. dondu, bo nie robisz tego, co byś chciał, np. DDRD |= ~(1<<PD3); //Ustawienie pinu jako wejście nope, powinno być DDRD & = ~(1<<PD3);, bo swoją linijką ustawiasz jako wyjścia wszystkie inne piny, a PD3 zostawiasz nietknięte... Jako że po resecie DDRD=0, to możesz myśleć, że...
Witam ponownie Dziękuje za pomoc - kod się sprawdził. Działa, ale tylko w przypadku, gdy wyjściami nie są PWM ( ATmega 32 - PIN PD4 i PD.5 ). Ustawienie wyjść na porty PWM, powoduje albo brak reakcji, albo powolne stopniowe rozjaśnianie LED - zależy od drobnych zmian w kodzie. Pozdrawiam Piotr Dodano po 1 Jeszcze jeden problem. Jeśli zmieniam stan wyjścia...
Przydało by się (no właściwie, to konieczne jest ;) ) zdefiniowanie portów jako WYJŚCIA. Domyślnie (po włączeniu zasilania) porty są wejściami "pływającymi" i zapisując do nich wartości nie wystawiasz na nie stanów logicznych, tylko włączasz i wyłączasz układy "podciągające" do Vcc. Gdzieś na początku main() wklep to: DDRC |= _BV(PC4) | _BV(PC5); /*...
Jak masz oscyloskop to sprawdź czy na wyjściu TXD nie ma sygnału, może problem jest po stronie sprzętowej ( sprawdź podłączenie do MAXa 232). No i nie wiem czy wiesz ale ustawiłeś tam na nadawaniu 2 bity stopu.
musisz B0 ustawic jako wejscie - podciagnąc do góry, ustawic 0 na PD0 i sprawdzic czy na PB0 jest 0. Nie łacz nigdy dwóch pinow ustawionych jako wyjścia.
Przepraszam, nie 90 a 180... Pomyliłem się. No i właśnie w tym problem że ustawienie portu w sposób o którym mówisz nic nie daje. Przebiegi na obu wyjściach są identyczne.
Witam, Mam problem i nie mogę znaleźć odpowiedzi, sam nie wiem co może być nie tak i w internecie na forach nie widziałem podobnego problemu. Mianowicie. Zaprojektowałem układ elektroniczny do sterowania zaworami, zawór działa na 24V i prąd około 63mA. Zawór załączany jest przez tranzystor 2N2222A. Sercem sterownika jest ATMega328P-PU, wszystkie podstawowe...
Zdecydowanie nie polecam tego typu sterowania magistralą I2C. Jest to magistrala typu "wired-and" i każdy nadajnik i odbiornik powinien mieć I/O typu "open collector". W przypadku zewnętrznego podciągnięcia pinów magistrali do Vcc sterowanie magistralą I2C lepiej jest rozwiązać w ten sposób, że bity SDA i SCL w rejestrze PORTx (w Twoim przypadku PORTB)...
Grala1 - Nie wiem czy ta wersja spełni oczekiwania : '$prog &HFF , &HE1 , &HD9 , &H00 ' Fusebity fabryczne !!! $sim ' dyrektywa opuszczania zwłoki (usunąć ten wiersz przy wgrywaniu w chip) $regfile = "m8def.dat" ' dyrektywa kompilatora o rodzaju procka ATMega 8 $crystal = 16000000 ' określenie kwarca 16 MHz Config Pinb.1 = Output...
Źle zobrazowałem sobie działanie rejestrów. Jeśli mają pamięć to faktycznie nie powinno być problemu. Zastanawia mnie jeszcze szybkość I\O mikrokontrolera. Ile czasu może trwać ustawienie 128-bitowego rejestru (256 zmian na wyjściu)?
Jeżeli ustawię sobie tryb 10 bitowy, a chcę mieć wypełnienie 50 % na którymś z wyjść to jak mam liczbę 512 poprawnie podzielić aby wpisać to odpowiednio do OCR3al i OCR3ah?
;* ;***************************************... ;*PROCEDURY OBSŁUGI MAGISTRALI 1-Wire DLA MIKROKONTROLERA AVR ;***************************************... ;* ;*Nazwa pliku :AVR_1Wire.asm ;* ;*Przeznaczenie :dowolny AVR, za wyjątkiem AT90S1200 ;*Kwarc :4MHz ;* ;*******************************OPIS****...
Albo ustawiłeś pull up, a nie strong 1 na wyjściu, albo co nawet bardziej prawdopodobne nie podłączyłeś wszystkich pinów Vcc i AVcc do zasilania...
Witam Takie coś trzeba zrobić. 1. TCCR1A=0b10000011 2. TCCR1B=0b00011001 3. OCR1A wpisujesz rozdzielczość czyli 100. 4. TCNT1 wpisujesz wartość wypełnienia od 0 do 100 Na wyjściu OC1A masz sygnał PWM a przerwania włącza się na innych rejestrach.
Witam Korzystam z płytki [url=https://www.arduino.cc/en/Main/ardu... przeznaczonej do Arduino. Do niej jest podłączona płytka [url=http://reprap.org/wiki/RAMPS_1.4]RA... oraz [url=http://reprap.org/wiki/RepRapDiscou... graficzny. To oczywiście cała elektronika do drukarki 3d jednak nie o...
Jeśli mogę poprosić o ocenę oto on: Przemyśl to :|
Może to ci się przyda [syntax=c] /* PROGRAMIK PRZYKŁADOWY Wykorzystanie sprzętowego PWM AVR ATMEGA 8 (1MHz) */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> /* PROGRAM */ int main(void) { int i; // Konfiguracja portów we/wy DDRB = (1<<2)|(1<<1); // OC1A i OC1B wyjścia PWM /* Ustawienie sprzętowego PWM */...
A change of the COM1x1:0 bits state will have effect at the first compare match after the bits are written. For non-PWM modes, the action can be forced to have immediate effect by using the FOC1x strobe bits. Być może w tym jest problem. OC1A jest prawdopodobnie inicjowane z wartością 0 do momentu wystąpienia pierwszego "compare match". W trybach "set...
Nic nie trzeba modyfikować Cytat z dokumentacji LM324: "• Large output voltage swing 0V to V+ − 1.5V" Czyli napięcie na wyjściu może osiągać wartości od zera do napięcia zasilania pomniejszonego o 1,5V. Przy zasilaniu 12V bez problemu osiągnie się od 0V do 10V. Na stronie 11 jest przedstawiony sposób zwiększenia wydajności prądowej przy...
Witam Kolegów. Mam mały problem. W zasadzie mój problem polega na tym, że działa coś co moim zdaniem nie powinno działać. Napisałem prosty kod na obsługę timera w ATmega 32. Prpgramik ma generować na 1-szym pinie PORTA sygnał o określonej częstotliwośći. Kod jest następujący: #include <avr/io.h> main() { DDRA=255; //ustawienie PORTA...
http://obrazki.elektroda.pl/8601265300_1... Witam. Chciałbym zaprezentować moją najnowszą konstrukcję, którą jest sterownik do akwarium. Konstrukcja sterownika powstała na życzenie mojego szwagra, który postanowił stworzyć dość duże akwarium w swoim mieszkaniu (fotki poniżej). Prezentacja będzie zawierała dokumentację fotograficzną,...
Najprostszy przykład jaki mi przychodzi do głowy to wykorzystanie tych dwóch dodatkowych funkcji do wygenerowania przerwania które nastąpią po przerwaniu A po czasie zadeklarowanym w rejestrach OCRxB/C W twoim kodzie będzie to coś takiego void setup(){ DDRB |= (1<<PB7); // ustawienie pinu 13 jako wyjscie PORTB &= ~(1<<PB7);//...
Cytat z http://www.patron.net.pl/AVRintropl.htm : "Budowa portów wyjściowych ATMega 8. Zasilenie diody Led dodatnim napięciem jest możliwe dzięki specyficznej budowie portów mikrokontrolerów serii AVR. Większość mikrokontrolerów innych typów , posiada wyjścia typu ?otwarty kolektor? co pozwala im jedynie na zwieranie dodatniego napięcia do masy. Inaczej...
Dzięki za odpowiedzi! Dodanie osobnej kości na płytce to nie problem, miejsce bym wygospodarował. Faktycznie w przypadku uszkodzenia AVR zewnętrzna pamięć EEPROM niewiele by mi dała, co innego w przypadku zastosowania jakiejś zewnętrznej pamięci flash, ale to raczej nie ma sensu. Chodzi o przechowywanie stanów na wyjściach rejestrów (wychodzi 120 bitów...
Witam. Próbuje skomunikować uC. Attiny25 ma pracować jako slave i wysyłać dane do mastera (Atmega8535). Kod Atmegi: Dodano po 4 Zauważyłem chyba błąd. [syntax=c]void PortSettingsSPI(void) { DDRB |= _BV(D0) | _BV(USCK); DDRB &= ~_BV(DI); }[/syntax] USCK powinno być wejściem a nie wyjściem. Ale to i tak chyba nie rozwiąże do końca problemu. Sprawdzę...
http://obrazki.elektroda.pl/1347637100_1... Witam. Przedstawiam dziś drugą, ulepszoną i bardziej funkcjonalną wersję przenośnego oscyloskopu cyfrowego. Głównym założeniem było zwiększenie zakresu częstotliwości w porównaniu do pierwszej wersji oraz jak zwykle: jak najtańszy koszt. Ponadto chciałem użyć w miarę duży ale tani kolorowy...
http://obrazki.elektroda.pl/5016503100_1... Układ nadążny za słońcem- inaczej układ śledzący, jest rodzajem układu sterowania, który umożliwia automatyczne lub półautomatyczne wodzenie za Słońcem. Układy tego typu wykorzystuje się najczęściej w celu znacznego podniesienia wydajności baterii fotowoltaicznych lub kolektorów słonecznych....
Witam! Walczę z panelem dotykowym rezystancyjnym 3.2'. Mój problem polega na tym, że w czasie gdy ekran nie jest dotykany przetwornik zwraca losowe wartości, jednak w chwil dotknięcia pomiar jest stabilny i powtarzalny. Nie wiem co robie źle, może ktoś opanował panel dotykowy za pomocą atmegi? Fragment programu w którym ustawiam odpowiednio port i odczytuje...
Kurcze ale malutki jestem... :D Po skrócie 1. Nie używałem JTAG-a i ta wiedza póki co nie jest mi raczej potrzebna. 2. Wiem jak ustawia się fusebits, ale jak napisałem na AT mam wyłączony JTAG a na AT168 nie. Jednak magistrala na AT168 działa bez problemu i to na porcie C z włączonym JTAG-iem 3. Rezystor podciągający dobrałem metodą prób i błędów staneło...
Ustawienie bitów WGM13:WGM12:WGM11:WGM10 na 1001 (9) oznacza ustawienie timera w tryb pracy "PWM, Phase and Frequency Correct", w którym rejestr OCR1A służy do ustalenia wartości, przy jakiej wartości licznik ma rozpocząć odliczanie w dół (zmienić kierunek zliczania), a nie do ustawienia wypełnienia. Użyj innego trybu. Nie napisałeś, co chcesz osiągnąć,...
Pisałem Ci o wyjściu typu OC/OD - otwarty kolektor/dren. Takie wyjście ma to do siebie, że w stanie niskim zwiera magistralę do masy (silny niski stan - 0), a w wysokim zwalnia ją tworząc stan wysokiej impedancji (stąd zewnętrzne oporniki wymuszające). Takiego wyjścia wymaga magistrala I2C, aby unikać konfliktów gdy jedno urządzenie wystawi 0 a inne...
Pomiędzy R4 i R5 oraz GND daj kondensator 100n, powinien znacząco pomóc, druga sprawa to brak kondensatora elektrolitycznego na wyjściu rzędu kilkuset uF, sam 100n nie wystarczy do tłumienia oscylacji. Pozdr Zrobiłem jak Piszesz. Niczego to nie zmieniło. Przy kondensatorze 470u na wyjściu gdy schodzę napięciem do 0.5V całość dostaje szajby i się wiesza...
na atmedze i tak typ double jest równy typowi float. Zmienne x i kat powinny być zadeklarowane jako volatile. aha no i często warunki typu if(zmienna == 43.342) zwracają fałsz, nawet jak wpiszesz zmienna = 43.543; if(zmienna == 43.543) {cos} to "cos" się może nie wykonać, bezpieczniej jest tam dać znak nierówności if(zmienna...
Jeśli taktujesz MCU zegarem 1 MHz (tak wychodzi z preskalera) to okres zegara wynosi 1us, tyle ile mniej więcej trwa impuls ujemny OW. Przy tak niskim taktownaiu można to zrobić, ale lepiej podnieść je do 4-8 MHz, co da więcej czasu. Tak jak pisałem, umieść w sekcji atomowej samo generowanie impulsu ujemnego, a delaye oprzyj o timer i będzie ok. BTW,...
Oczywiście z tym bugiem to był żart :) Tak, wiem jak działa tryb fast PWM. Natomiast w innym egzemplarzu tego samego mikrokontrolera z takimi ustawieniami działało to tak, jak powinno. I stąd moje zdziwienie i próba zgłębienia tematu. Faktycznie, teraz wiem że w tym trybie praca PWM nie jest powtarzalna.
w trybie UART ten pin jest ciągle masą - "coś" go sprowadza do tego poziomu, tylko nie wiem co. Pomału wychodzi prawdziwy powód braku komunikacji. To pewnie oprogramowanie bo jeśli można toglować pinem to znaczy zwarcia na płycie nie ma. Kiedy aktywny jest USART to ustawienie bitu TXEN powoduje, że na wyjściu zawsze jest stan wysoki kiedy nic nie jest...
Mógłbyś trochę rozwinąć ? Niestety nie mogę tego ogarnąć - to już moje drugie podejście, po próbie połączenia UART z PWM, wtedy odpuściłem, bo blokowało mi wyjścia na czas połączenia. Przeglądając przykłady na tym forum wyszło coś takiego: '********************* Konfiguracja UART Config Serialin = Buffered , Size = 40 , Bytematch = All Enable Interrupts...
Przepraszam za przemienne używanie portów A i B, ale chciałem sprawdzić zachowanie na innym porcie. Więc tak B0 powinno być wyjście, B1 wejście. Wejście działa bez problemu, problem jest jedynie z wejściem. Stan wyjścia B0 zależy od stanu licznika zwiększanego przez przycisk podłączony do pinu B1. Obsługa licznika i jego stanu jest prawidłowa(mam podgląd...
http://obrazki.elektroda.net/33_12842164... Witam, od jakiegoś czasu chodził mi po głowie pomysł kolektorów słonecznych. Początkowo miała to być tania konstrukcja złożona z materiałów, które miałem pod ręką. Jednak w miarę budowy dominowało powiedzenie "aa, jak już robimy to zróbmy to trochę lepiej...". Kolektory robiłem z bratem i tatą. Absorber...
Mam bardzo dziwny problem, robię minisumo na ATmedzę 128, no i oczywiście coś nie działa. Problem polega na tym że piny PA0, PA7, PG2, PC7 są nie aktywne pomimo iż programuje je w odpowiedni sposób, i nie mam włączonej kompatybilności z atmega103, ponieważ PA1 i PA2 działają normalnie. Jeżeli chodzi o program to jest to ustawienie wszystkich pinów na...
To własnie mikrokontroler programujesz... Pisząc zatrzask chodziło o to ze ustawisz sobie odpowiednie stany na wyjściach (zapalisz odpowiednie diody) i zrobisz zatrzask, żeby te diody były zapalone do momentu zapalenia innych diod. Za pomocą mikrokontrolera sterujesz tym buforem. Piszesz na komputerze program, programujesz mikrokontroler za pomocą programatora...
Witam, Czy w trakcie działania programu pin mikrokontrolera (ATmega,STM itp.) może zmienić swoje ustawienie z wejścia np. na wyjście i odwrotnie ? Tz. czy jeśli zainicjuje go np. jako wyjście to czy jeśli zajdzie potrzeba odczytu wartości na tym pinie mogę go prze-konfigurować na wejście ? Pozdrawiam.
Dzięki za podpowiedź. Niestety po dodaniu atrybutu do stringów opisy menu importowane z struktury się rozjechały - pokazuje jakieś krzaki. pamiętając co po czym występuje stwierdzam że niepomogło choć: Data Memory Usage :2252 bytes 55,0 % Full, a więc coś jest na rzeczy. Dlaczego występują krzaki? Dodano po 20 A jeszcze dodałem atrybut do definicji...
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...
No więc podsumowując, problemem od początku było ustawienie pinów portu B, podłączonych do programatora jako wyjścia.
Witam, Pewnie sprawa będzie dla was banalna ale ja się z nią zmagam już jakiś czas. Poniższy kod steruje 5 serwami: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define KEY3 (1<<PA3) #define KEY1_DOWN ( !(PINA &...
Witam wszystkich :) Nie będę owijał w bawełnę. Mam problem zapewne banalny ale ja nie potrafię sobie z nim poradzić. A więc zbudowałem układ do obsługi kart pamięci Compact Flasch na bazie mikrokontrolera Atmega162 posiłkując sie serią artykułów z Elektroniki Praktycznej, który rozpoczął się 02/2004r. Układ ten poza pamięcią ma mieć jeszcze wbudowany...
Pin RE i DE są zwarte z sobą i podane do jednej nóżki uC. Więc chyba ta definicja ustawia Pin 4 na porcie B na wyjście? Mam wrażenie, ze nie rozumiesz. "Podanie" pinów RE i DE do jednej nóżki mikrokontrolera nie konfiguruje jej jako wyjście. Mirek36 usiłuje Ci powiedzieć, że na początku funkcji main() przed pętlą nieskończoną powinieneś mieć instrukcję...
Hi ! Koledzy nie mogę ustawic portów w atmedze 8 w bascomie. Perogramuję przez stk200/300. ustawianie pinów portu jako wejscie przez config pind.6 = input nic nie daje port działa jako wyjscie stan 0.Ustawienie przez set lub reset działa . Ustawienie wyjść przez config pind.3 = output tez nic nie daje bo cały port działa jako wejścia albo wyjscia. polecenie...
Witam Jestem w trakcie projektowania układu sterowania silnikiem DC o małej mocy (5 V). Ma być to model pełnowymiarowego urządzenia. W pierwszej kolejności zbudowałem prototyp na płytce stykowej z użyciem Arduino Uno R3. Program został przetestowany i wszystko działało bez zarzutu. Zaprogramowałem więc 'goły' mikrokontroler ATmega 328P i zbudowałem...
W każdym razie dziwnym jest że producent ustawia piny domyślnie jako wejścia żeby działały niepotrzebnie jako anteny - pewnie miał taki kaprys. No akurat kaprys to nie jest. Pomyśl sobie co by było w sytuacji, gdyby piny były skonfigurowane jako jakiekolwiek wyjścia, a podczas startu procesora pod te WYJŚCIA podpięte były inne układy wymuszające jakiś...
Przeanalizujmy więc: while(1); przed pętlą główną - jeśli będą świecić to znaczy że je podłączyłeś tak jak napisałem powyżej. A teraz zerknijmy jak LEDy są podłączone na schemacie z artykułu: http://obrazki.elektroda.pl/7362082300_1... Przy okazji wklejenia schematu odniosę się do tego, że traktowałeś pin ADC napięciem 5V podczas, gdy...
[syntax=c] #include <avr/io.h> #include <util/delay.h> #define ADCIN PC5 //definicja ADCIN (wejście ADC) #define nadmuch (1<<PD0) #define paliwo (1<<PD1) #define iskra (1<<PD2) #define alarm_temperatura (1<<PD3) #define alarm_paliwo (1<<PD4) int main(void) { //Uruchomienie ADC, wewnętrzne napiecie odniesienia,...
Linię 2 portu D ustawiłeś jako wyjście i nadal próbujesz używać przerwania od przycisku. Przycisk na przerwaniu Ci nie zadziała, a przy ustawieniu INT0 jako wyjścia możesz upalić bufor wyjściowy zwierając go przyciskiem do masy.
w tej chwili to programuje troszke po omacku, na podstawie znalezionego w necie kodu. korzystam z ponizszego: #include <avr/io.h> #define CPU_Hz 8000000 // częstotliwość zegara w Hz #define OSC 8 // częstotliwość zegara w MHz #define BAUD 9600 // prędkość transmisji po RS232 #define MYUBRR CPU_Hz/8/BAUD-1 /// **** fukcje dla RS232 **** void UART_init(unsigned...
Wyszło coś takiego: http://obrazki.elektroda.pl/8848190000_1... Dodano po 24 Wymieniłem uc, sprawdziłem połączenie - nie działa Mam podejrzenia co do portu w ustawieniach avrdude (lpt1, lpt2...), oraz co do programatora także w ustawieniach, bo nie mam tam USBASP do wyboru.
Witam, to moja pierwsza konstrukcja, mam nadzieje, że dobry dział. Chciałem prosić o sprawdzenie schematu i ew. wytknięcie błędów. Mam również kilka wątpliwości. Schemat przedstawia moduł GSM (SIM-300), połączony z Atmega644, modułem BTM-222 oraz MAX7325 (I2C Port Expander). Układ ma za zadanie monitorować stan na liniach I/O oraz powiadamiać smsem...
Witam, od kilku dni męczę się z podobnym problemem (piszę w Bascomie AVR 1.11.8.3). Juz sam nie wiem co jest nie tak. Programator działa poprawnie. Mogę odczytać sygnaturę układu(ATtiny26) jak również załadowac program (przez ISP programer Dybkowskiego) plik hex (cykliczna zmiana stanów na wyjściach portów)- napisany celem sprawdzenia programatora i...
Witam. Mam następujący problem - chciałem użyć timera 2 do pracy asynchronicznej z zewnętrznym rezonatorem kwarcowym (zegarkowym) o częstotliwości 32,768 kHz. Czyli ATmega powinna być taktowana wewnętrznym szybkim oscylatorem, a jedynie ten timer zegarkowym. Kod: #include <avr/io.h> int main (void) { DDRD |= (1 << 0);...
Problem rozwiązany. PWM'y reagują prawidłowo na zadawane wartości. Dla potomnych zamieszczam działający kod. Dziękuje wszystkim za pomoc. [syntax=c]/* Wykorzystanie sprzętowego PWM AVR ATMEGA 88 (1MHz) */ #include <avr/io.h> #include <util/delay.h> int main(void) { // Konfiguracja portów we/wy DDRB = (1<<PB1)|(1<<PB2)|(1<<...
No to w takim razie prościej void pulse2(void) { if(!bit_is_clear(PINB, PB0)){} //sprawdza czy został puszczony przycisk int i; for(i=0;i<200;i++) { //załączenie OUT_ON; delayms(500); if(bit_is_clear(PINB, PB0)) { //sprawdza czy przycisk załączony OUT_OFF; return; }...
Witam, Podłączyłem diodę LED do ATmega8 i napisałem w C program do jej migania jednak nie działa. Próbowałem wszystkich dostępnych kodów w Internecie jednak efekt jest ten sam: dioda się pali non stop. Zauważyłem jedną dziwną rzecz: użycie _delay_ms(); jakby zatrzymywało działanie programu bo bez tej funkcji mogę bez problemu sterować pinem w stan niski...
Zapewne LEDy są katodą do pina komputera? To wynika z tego, że piny portów po resecie są na 0 więc jeżeli ustawisz je jako wyjścia przy takim podłączeniu LED będą świecić. swoją drogą ustaw jako wyjście tylko pin PC0 Dodano po 1 Pewnie wiesz co to VOLATILE: http://mikrokontrolery.blogspot.com/2011...
zrobiłem test z pętlą, w której program zwiększa wypełnienie o 1 mikrosekundę powtarzając od wartości 700 do 2200 mikrosekund. Wszystko działa płynnie i ładnie do 765, po tej wartości nagle serwo wykona ogromny skok i idzie znów dalej płynnie (jakby nie było zakresu ustawienia 765-1500). Akurat wczoraj też odnalazłem przykład kodu z wewnętrznym oscylatorem...
Witam Zbudowałem swój układ na podstawie (część z EM4095): http://sklep.avt.pl/photo/_pdf/5186.pdf Sercem układu jest Atmega8 (kwarc 11059200MHz +12pF), wszystko jest dobrze podłączone. Napięcie jest stabilizowane 7805 + 4 kondensatory + 1N4007. Niestety mam dziwną sytuację przy zasilaniu z zasilacza sieciowego stabilizowanego 12V, przy ustawieniu MOD...
http://obrazki.elektroda.net/56_12840753... Witam, prezentowane dziś urządzenie pełni funkcję dwukanałowego sterownika wentylatorów, sterowanych w zależności od wartości zmierzonej temperatury. Wyposażone jest w dwa niezależne kanały, z własnymi czujnikami temperatury. Umożliwia ono ustawienie za pomocą jednego potencjometru wszystkich podstawowych...
Nie używam i nie znam BASCOMA. Próbuje swoich sił w Arduino IDE (ATMega328(at)16MHz). Po pomocy ze strony przyjaznych niewiedzącym: BlueDraco , nsvinc , tmf mogę stwierdzić że: Ten uC ma na pewno możliwości, aby obsłużyć te przerwania (zakładam ok. 33kHz). Problem nie polega na wywołaniu zaprogramowanego przez Ciebie przerwania (ale to już zauważyłeś),...
.nolist .list .cseg .org 0 sbi DDRC, 0 sbi PORTC, 0 sbi DDRB, 0 sbi PORTC, 1 Witaj na forum elektroda.pl! Chętnie pomogę Ci przekształcić podany kod asemblera na język maszynowy oraz wytłumaczę, co robi każda linijka kodu. Oto przekształcony kod maszynowy wraz z omówieniem: Kod asemblera: ``` sbi DDRC, 0 sbi PORTC, 0 sbi DDRB, 0 sbi PORTC, 1 ``` Kod...
Witam, mam mały problem. Aktualnie pracuję nad projektem sterowania silnika krokowego. Chciałbym aby silnik wykonywał przeze mnie określoną ilość kroków w lewo taką samą ilość kroków w prawo. Silnikiem krokowym steruję za pomocą procesora ATmega 32A i sterownikiem DRV8825 Stepper Motor Driver [url=https://www.pololu.com/product/2132...
Witam, czy można skonfigurować porty ATmega ( np. ATmega32 ale dla wszystkich będzie zapewne identycznie) jako wyjścia typu otwarty dren ( wyjście "ściąga" do masy tylko gdy zapisane jest "0", gdy podane "1" to nie podaje żadnego napięcia) Wiem że można kombinować i ustawiać za każdym razem zamiast "1" stan HiZ ale może przeoczyłem coś i można to ustawić...
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Hehe, może nie tyle posklejałem, co po prostu uczę się czytając tutoriale, a że są one pisane przez różne osoby... ;) Wprowadziłem drobne modyfikacje: [syntax=c] #include <avr\io.h> #include <avr\interrupt.h> #include <avr\signal.h> #include <util\delay.h> #define BUZZER PORTC volatile int licznik=0; volatile int sekundy=0; ISR(TIMER0_OVF_vect)...
Każdy kiedyś zaczynał. Program da się przerobić. Dla ułatwienia kod kolegi Mictronic'a z komentarzem: $sim 'ta linia tylko do symulacji, przed zaprogramowaniem usunąć $regfile = "m16def.dat" 'wybór procesora, zmienić na m8def.dat $crystal = 1000000 'przykładowo masz zegar 1Mhz Ddrb = 255 'konfiguruje wszystkie linie portu jako wyjścia inny...
Witam Zrobiłem sobie układ, który ma na wyświetlaczu wyświetlać godzinę oraz temperaturę wody. Samą obsługę wyświetlacza jakoś udało mi się ogarnąć, natomiast mam problem przy odczycie temperatury z czujników oraz czasu z ds1302. Na początku ustawiam sobie godzinę 10:40 i to wyświetla się poprawnie, ale jak idzie odczyt z ds1302 to wyświetla mi się...
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...
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;...
Okazało się że musiałem wyłączyć JTAG-a. Teraz już wszystko działa:) Standardowo ATMega ma go załączonego i przez to nie można używać pinów: PORTC.2 PORTC.3 PORTC.4 PORTC.5 jako wyjść. Jakby ktoś miał ten sam problem to JTAG-a wyłącza się zmieniając programatorem ustawienie bitu JTAGEN w bitach konfiguracyjnych procesora.
- albo ustawiasz pin OC1A w automatyczne zmienianie stanu na przeciwny przy porównaniu z OCR1A poprzez wykorzystanie COM1A1 i COM1A0. Tylko tutaj musisz DDR pinu OC1A ustawić jako wyjściowy ) Dokladnie o takie rozwiazanie mi chodzi. Faktycznie zapomnialem o TCCR1A= (1<<COM1A1). Obecny kod: #define CLK_LED PD5 .... [syntax=c] DDRD |= (1<<CLK_LED)...
napisałem program zmieniłem taktowanie uc na 8MHz wgrałem program jedyne, co działa to obsługa przycisków Dodano po 24 Problem najpewniej występuje w tej części programu: Dodano po 3 66 osoby widziały ten post, ale tylko jedna odpowiedziała. Wiesz dlaczego? Ponieważ Twój kod i schemat są nieczytelne. Nadal to jest problem? Jakie mosfety włączają zasilanie?...
Witam mam kolejny problem z nieszczęsną atmega128. Napisałem program który działał na ATmega16 i chciałem go przenieść do atmega128 no i jest problem. Program w ogóle nie działa. W przerwaniu powinny się zwiększać wartości zmiennych. Niestety chyba nie zwiększają się :/ program wchodzi do przerwania bo wstawiłem tam naprzemienne ustawianie i kasowanie...
ja miałem coś takiego jak programowałem 90S8515 za pomocą willem, przez przypadek ustawiłem napięcie 21V ktoe poszło na końcówke reset, wynikiem tego było to że porcek nie startował, a programował się. Pomogło dołączenie reszystora 100ohm do + układu. A może poprostu źle programujesz wyprowadzenia procka, pamiętaj że w AVR wyjściami sterujesz za pomocą...
a co się dzieje wewnątrz mikrokontrolera? Opiszesz mi instrukcje Atmega8a wraz z tym jak to działa, co się dzieje z układem mikrokontrolera? Oczywiście! Omówię, jak działają poszczególne instrukcje Atmega8a w kontekście podanego kodu asemblera oraz jak wpływają one na funkcjonowanie mikrokontrolera. Kod asemblera: ``` sbi DDRC, 0 sbi PORTC, 0 sbi DDRB,...
Już ktoś napisał - według mnie dobrym pomysłem byłoby ESP-12. Byle nie podłączać bezpośrednio wyjścia ESP, zasilanego najczęściej napięciem 3,3V, do WS2812. Podłączenie atmega zasilanej z 3,3V to błąd, nawet dwa. Pierwszy, to taktowanie 16MHz przy zasilaniu 3,3V. Stanowczo za szybko dla tego napięcia. Drugi błąd, to poziom wysoki dla LED, który wynosi...
0 logiczne - masa 1 logiczny - +5V Z ekranu generatora wygląda na to że masz tam 5V peak to peak + 0Vdc, czyli tak jak kolega wcześniej zasugerował na wyjściu jest +2,5V i -2,5V. Gdybyś ustawił składową stałą 2,5Vdc to rzeczywiście byłoby to TTL. Dodatkowo brak kondensatorów na zasilaniu i szybki układ impulsowy zmontowany "na pająka" mogą powodować...
Witam próbuje uruchomić 6 pwm na Atmedze128 z timera 1 i 3 program wyglada tak: [syntax=c]#include <avr/io.h> #include <util/delay.h> int main() { DDRE = 0xff; DDRB = 0xff; DDRC = 0xff; PORTC = 0xff; //konfiguracja portow TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1&l... / TCCR1B = (1<<CS11)|(1<<WGM12)|(1<&...
http://obrazki.elektroda.net/43_12786005... Atmega fusebit doctor, jak sama nazwa mówi, to urządzenie do naprawienia nieumiejętnie przestawionych fusebitów w mikrokontrolerach z rodziny AVR. Największymi problemami jest ustawienie nieprawidłowego źródła zegarowego (fusebity CKSEL), wyłączenie programowania SPI (fusebit SPIEN), lub ustawienie pinu...
Witam. Zaczynam dopiero zabawe z mikrokontrolerami i mam juz pierwszy problem. Otóż nie działa timer0. Wszystko sprawdzałem pare razy i nie wiem co zle zrobiłem. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define LED1 PB1 #define LED2 PB0 int main(void) { TCCR0 |= (1<<CS02) | (1<<CS00); // preskaler 1024 TIMSK...
Witam, mam teoretycznie prosty problem, z którym jednak na razie przegrywam. Otóż definiuję trzy piny portu C (PC0-PC2) jak wyjścia, których zadaniem będzie zapalanie odpowiednich diod led. Piny PC0 i PC1 działają jak należy, tzn zmieniają swój stan wedle programu. Natomiast pin * PC2 (TCK) * odmawia posłuszeństwa i robi sobie swoje tzn nie reaguje...
Np. dla portu PC0 podłączonego do wejścia A0 układu 74hc245 w języku c będzie to wyglądało następująco: DDRC = (1<<DDC0); - ustawiamy PC0 jako wyjście PORTC = (1<<PC0); - wyjście ustawione w stan wysoki wtedy na wyjściu B0 (w 74hc245) otrzymasz 1, ale pod warunkiem, że w 74hc245 wejście OE ustawisz w stan niski, a wejście DIR w stan wyskoki....
Mam następujący problem: Zadaniem docelowym jest wysyłanie wiadomości sms przez podłączony do ATmega32 terminal GSM przez RS-232. Problem polega na tym, że modem nie odpowiada na komendy AT wysyłane z ATmegi. PARAMETRY UKłADU: - Terminal Siemens MC55: - Atmega32, zewnętrzny kwarc 8MHz. Komunikacja Terminal GSM -> PC działają poprawnie. Wysyłająć...
"jesli A ponizej 2V wejscie i1-i6 odblokowane jesli powyzej zablokowane " Jak dla mnie sprawa wygląda tak: Wejście analogowe A określa stan O7 i reakcię I1-I6; B określa stan O8. O4, O5 i O6 mają zanegowaną logikę (aktywne w stanie niskim czyli załączenie wejścia = ustawienie Lo). Czyli przy 0<A<2V wejścia I1:I6 są aktywne czyli zmiany na tych...
Podłącz sonar do interfejsu TWI w ATmedze 128. Wyjście ANOUT zostaw w spokoju. Sonar trzeba tak czy siak uruchamiać po i2c, a skoro tym samym interfejsem odczytuje się odległość, to nie widzę najmniejszego sensu samego wyjścia ANOUT. Zakładam że znasz chociaż bascoma i będziesz wiedział co z tym zrobić ;) Kod jest z robota, stąd trochę niepotrzebnych...
to jest niebywała zaleta druku Chyba, że masz nie do końca poprawnie ustawioną drukarkę i czasem zapycha się dysza lub element odkleja się od stołu. A właśnie, dowcip Ci opowiem. Jakoś 3 tygodnie temu znajomy grzebiąc przy drukarce zrobił małe zwarcie, i spalił płytę główną. Ot, burdel w kabelkach i tak wyszło. Uznał że to doskonały moment by z ATmegi...
Projektuje nowy układ z wykorzystaniem ATMEGA 8 SMD i mam problem z tym że wyjścia MOSI i MISO których będę potrzebował do programowania uC musiał bym wykorzystać jako wejścia. Czy jeżeli w bascomie skonfiguruje te porty jako wejście i podciągnę je rezystorem do plusa to czy będę mógł nadal programować uC ? Podciągnięcie masz na myśli pull-up wewnętrzny?...
Program jest jak sądzę najprostszy z możliwych [syntax=c]#include<avr/io.h> #include<util/delay.h> int main(void) { DDRC = 0x3f ; // cały port B jako wyjścia PORTC = 0x3f ; // cały port B z podciąganiem while(1) // pętla główna programu { PORTC = 0x3e ; _delay_us(0.1); PORTC = 0x3f ; _delay_us(0.1); } }[/syntax] Głównie chodziło mi o sygnł...
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...
Witam Chciałem podłączyć układ AVT730 pod atmege8 w celu wykrywania przeszkody w zasięgu toru podczerwieni (AVT730 czyli brama świetlna). AVT730 pozwala na wyprowadzenie wyjścia (standardowo jest piezo) sygnalizującego stan (czy jest przeszkoda - sygnał można także "zanegować"). Układ ustawiłem tak, aby przy wykryciu przeszkody na wyjściu było 0V. W...
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óż...
rs232 wyjścia atmega atmega timer wyjścia atmega ustawienie taktowania
schemat deutz agrotron sygnału canal sport zegar dobowy
harman kardon firmware harman kardon firmware
Twardy pedał hamulca przed uruchomieniem silnika Toyota Corolla E12 Peugeot 208 1.6 Allure - problemy z kontrolkami po nagrzaniu