Najprościej odpalić timer i w przerwaniu wystawiać dane i przełączać segmenty przykład: ISR(TIMER1_COMPA_vect) { switch(wysw) { case 0: PORTD = 0b1111110; PORTB=cyfra[jednosci]; wysw++; break; case 1: PORTD = 0b1111101; PORTB = cyfra[dziesiatki]; wysw++; break; case 2: PORTD = 0b1111011; PORTB =...
(at)MacFis: sądzę, że jest dobrze, ale kondensator 1mF jest trochę na wyrost jeśli z 5V będziesz zasilal tylko elektronikę. 47 lub 100uF sądzę, że by wystarczyło. Ja bym czujniki podłączył do portu A - bo na 18. i 19. nóżce masz wyjścia 16bitowego PWMa. A na porcie A masz przetwornik A/C, którego 2 kanały i tak Ci zostaną wolne (a nawet 4 jeśli czujniki...
Zakładam że kompilujesz w takim GCC jak ja. Spróbuj tego: #include <avr/io.h> //#include <stdio.h> niepotrzebne, bez tego też działa #include <avr/interrupt.h> //#include <avr/signal.h> tej biblioteki się nie stosuje - patrz gcc-libc ISR(TIMER0_OVF_vect) //po co tam miałeś INT0_vect? { PORTD ^= 0xFF; //będziemy mieli...
Witaj. Delphi nie znam, wiem że jest to program bardzo podobny do VB. Ma wiećej możliwości oczywiście, myślę że jednak nie o to chodzi. DO RZECZY Chodzi Ci o to by np. po naciśnięciu przycisku program wysłał kod (jaki to teraz nie ma znaczenia) , a BasCom ma go odebrać. Poczym uC ma wykonać określoną czynność. Jeśli chodzi co o to ?? , sprawa jest prosta....
Witam Oto kod w języku C. Odnośnie schematu - będzie wszystko działało prawidłowo, gdy zastosujemy diody LED niskoprądowe (np. /*Czestotliwosc taktowania procesora 1 MHz (korzystamy z wewn. RC 1MHz) *Procesor ATmega 8 */ #define F_CPU 1000000UL #include <avrio.h> #include <utildelay.h> #define Czas_zalaczania 400//Czas oczekiwania...
Obiecałem działający programik. Działa na 100%. Jest to progrtam, który wysyła stan temperatury z DS18B20 do kompa, ale dla Ciebie najistotniejszy jest sposób komunikacji. Jest wysyłane zapytanie i uC zwraca odpowiedź. Jak uporasz się z krzaczkami, to program Ci się przyda. Można zrobić bardzo prosty protokół wymiany informacji. #include <avr/io.h>...
http://obrazki.elektroda.pl/7114210100_1... Witam wszystkich serdecznie ! Z racji tego, że zbliżają się święta postanowiłem podzielić się z wami projektem elektronicznego drzewka szczęścia. Urządzenie powstało prawie rok temu i było prezentem urodzinowym dla mojej dziewczyny którą serdecznie pozdrawiam !!! :D Założenia do projektu:...
Mam problem z uruchomieniem przerwania, kombinowałem wiele razy z różnymi ustawieniami jednak nie obserwuję zmian na porcie PD7, PWM na porcie PB3 działa (przebiegi obserwowane na oscyloskopie). Mikroprocesor to ATmega 16 taktowana z kwarcu 16 MHz. Może ktoś zerknie świeżym okiem i doradzi. #define F_CPU 16000000 #include #include #include #include...
Nie wiem na które pcb patrzysz , to ostatnie do pełnej wersji z pomiarem prądu i napięcia ,patrzę i widzę że jest OK . pin40 i pin39 są podpięte do dzielnika kondensator żeby nie pływał pomiar zbytnio. nie widzę tego o czym piszesz . Wieczorem sprawdzę jeszcze raz i podam zaktualizowane . Ok jest wieczór więc zamieściłem na 2 str. schemat i pcb w eagle...
if(!(PINA & 0x04)) PORTD |= (1<<4); else PORTD &= ~(1<<4);
Witam, zwracam się do was z wielką prośbą o sprawdzenie schematu, ponieważ ja jestem dopiero początkujący i nie chcę nie potrzebnie zniszczyć elementów. W razie wątpliwości i niejasności proszę pytać. http://obrazki.elektroda.net/63_12486903... http://obrazki.elektroda.net/23_12486907... http://obrazki.elektroda.net/45_12486908...
Zrób to inaczej - pin, który ma odpowiadać za generowanie przerwania zdefiniuj jako wejście z podciągnięciem do VCC czyli: DDRD &= ~(_BV(2)); PORTD |= _BV(2); wywołasz przerwanie zwierając pin do masy.
Kod jest poniżej, a co watchdoga to nie za bardzo wiem który fusbit jest od niego. Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111111 Portd = &B1110111 Do Portd.0 = 0 Waitms 1000 Portd.0 = 1 Waitms 1000 Loop End
Co rozumiesz przez pojecie "nie od tej strony co trzeba"? używajac funkcji define przypisywałem wartość do np. wyjscia typu: #define PORTD 0xff; ale do czego jest to PORTD2? i po co ta 2?
Niestety nie mam schematu urządzenia - robiłem płytkę "z głowy". Na płytce procesor atmega16 do portu a podłączona klawiatura 4x4, portc oraz portd7 wyjścia, portd - LCD, portb programowanie + 1wire. Na płytce jeszcze układ stabilizujący napięcie, wyprowadzenia ledów (równolegle z wyjściami) i kwarc 8mhz plus kond. 22 . A układ wykonawczy zrobiony na...
Witam, Mam nastepujący problem z PWM. Pracuję na Atmega16. Oprócz tego używam AVRStudio w wersji 4.13 oraz WinAvr 20070525. Mój kod wygląda następująco: #include <avr/io.h> void main(void) { DDRB=0xFF; DDRD=0xFF; TCCR1A=0x83; // wy. jest ustawianie po osiągnięciu warunku // równości podczas zlicznia w dół // zerowane po osiągnięciu warunku równości...
DDRD = 0x00; PORTD = 0xFF; if(!(PIND & 0x20)) { _delay_ms(20); ... while(!(PIND & 0x20)) {} } Czy dobrze obsługuje uSwitch na pinie PD6 w Atmega16, bo mam problemy?
Obydwie diody powinny zaświecić się, gdy trzymasz przycisk, jak puścisz mają zgasnąć. Napisałem teraz ten kod sprawdź czy jest dobry. #include <avr/io.h> #define klawiszD DDRD #define klawiszP PORTD #define klawiszI PIND #define sw1 PD3 //zapalanie diod #define LED_1PD4 #define LED_2PD5 int main (void) { DDRD |= (1<<LED_1)...
Dobry wieczór, krótko : - program z wykorzystaniem ATmega16L + hc-sr04(ultradźwiękowy czujnik odległości) - mam problem z wyświetlaniem znaków bo powinno pisać : CIRCUIT DIGEST/DISTANCE=[i tu odleglosc w cm] - jest napisane CKSCWKT DKGGST/DKSTCOCG?33CM - na schemacie jest ATmega32 ja mam ATmega16 - http://circuitdigest.com/fullimage?i=cir...
Witam. Niedawno kupiłem sobie ATMegę 16, płytkę i inne dodatki do tego. Dopiero chcę zacząć przygodę z mikrokontrolerami a tu już w powitalnym układzie niemiła niespodzianka. Na wyjściu PD6 i PD5 (mierząc woltomierzem) naprzemiennie pojawia mi się stan wysoki (5V) i niski. Mam pod te wyjścia podłączone dwie diody z rezystorami 1k. Mimo wszystko diody...
waitms nie jest konieczny, lepiej ustaw piny jako wyjściowe, dodaj config Portd = output przed cls no i $crystal, tak jak pisałem, to powinno pomóc
Hm, a jak sobie zrobić samemu tego PWM'a? Skoro na nożkę mogę dać 1 lub 0. w najprostszej postaci, można chociażby tak: while(1){ PORTD |= (1 << DIODA); _delay_ms(30); PORTD &= ~(1 << DIODA); _delay_ms(80); } opóźnienia przypadkowe
Czy ktoś może spotkał się z problemem wykorzystania portu A jako portu I/O a nie jako przetwornika? Dołączyłem LED'a no i nie świeci tak jasno jak w przypadku podpięcia np. do portu C. Czy jakiś rejestr trzeba dodatkowo ustawić? Jakoś w dokumentacji nie mogę się doczytać. Z góry dzięki za pomoc.
witam nie wiem jak wysłać coś na RS napisałem program wysyłający "123" i bascomowy terminal nie widzi nic a seriarwotcher odbiera tylko śmieci uruchamiałem przykłady z funkcją print (dostosowywałem $regfile,$crystal,$baud ) i nic nie działa czy bascomowe przykłady nie działają ????? ( kabelek ok po zwarciu echo jest ) $regfile = "m16def.dat" $crystal...
Witam ma kod do obsługi LCD 1x16 z strony : http://radzio.dxp.pl/hd44780/hd44780_avr... Kod użyty razem z Atmega16 z kwarcem 14.745600Mhz konfiguracja LCD : #define LCD_RS_DIR DDRD #define LCD_RS_PORT PORTD #define LCD_RS (1 << PD7) #define LCD_E_DIR DDRC #define LCD_E_PORT PORTC #define LCD_E (1 << PC2) #define...
spróbuj tak: $regfile = "m16def.dat" $crystal = 1000000 Config Portd = Output Portd = &B0000000 'config pind.7 = input 'przycisk alias pord.7 'dim as a=byte 'set przycisk 'Do 'if przycisk=0 then 'do 'loop until przycisk=1 'a=a+1 'end if 'if a=1 a=2 a=3 then Waitms 2000 Toggle Portd.5 Waitms 2000 Toggle Portd.5 Waitms 1500 Toggle Portd.5 Waitms...
Złożyłem układ połączenia są dobre, tylko nie działa LCD, po włączeniu zasilania góra jest cała wypełniona a dół pusty, program który wrzuciłem: $regfile = "m16def.dat" $crystal = 1000000 $baud = 9600 $lib "lcd4.lbx" Config Portd = Output $prog &HFF , &HE4 , &HD9 , &H00 ' generated. Take care that the chip supports all fuse bytes....
Funkcja pulsein wstrzymuje działanie programu na te 655ms? (lub krócej) Nie, nie wstrzymuje, cały czas mierzy. Tyle tylko może zmierzyc(!!!). Jeżeli mierzony przedział czasu jest dłuższy to powie (Err=1) ; znaczy to że jego miara jest za krótka. Tu masz przykład pomiaru impulsu (active low) timerem 1 [syntax=basic4gl] 'Timer1 measure time interval...
Witam, jest to kolejny post z serii "nie mogę zaprogramować układu". Podczas projektowania układu musiałem użyć portu B jako 8b szynę danych. Na jej końcach znajdują się układy 74HC573(zatrzaski) w układzie wejściowym i wyjściowym(taki prosty ekspander portów na TTL). Całością steruje przez demultiplekser. Problem polega na tym, że po zmontowaniu układu...
Witam jeśli pisze w niewłaściwym dziale to przepraszam. Mój problem polega na tym ze na wyjściach atmega16 są dziwne stany (czy jest spalona czy o co chodzi) mianowicie zadaje programem coś takiego a na wyjściach mam tak: PC.0- działa dobrze według programu PC.1- działa dobrze według programu PC.2- jakieś 2V PC.3- jakieś 2V PC.4- nic PC.5- nic PC.6-...
Z tego co wiem porty wyjścia mają domyślny stan wysoki ale zastosowałem komendę PORTD = 0xFF i nic. Pomogło wyłączenie JTAG.Zmieniłem hFuse z 99 na D9 i wszystkie diody elegancko się świecą. Problem rozwiązany,dzięki z pomoc.
Witam, Opiszę może krótko sytuację: mam atmega16, na timer1 mam ustawiony tryb pracy pwm, używam kilku pinów na PORTD i PORTA do sterowania mostkamiH. Potrzebuję odmierzanie czasu 10ms i chciałem to zrealizować przy pomocy przepełnienie od timera0 lub timera2. Niestety kiedy chcę obsługiwać przerwanie od przepełnienia T0 lub T2, to całkowicie psuje...
$regfile = "m16def.dat" $crystal = 16000000 Config Portd = Output Portd = &B01111111 Config Timer1 = Timer , Prescale = 1024 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 15625 Do Loop End Sekunda: Load Timer1 = 15625 Rotate Portd , Left Return i drugi $regfile = "m16def.dat" $crystal = 16000000 Config Portd...
Wiem o tym, czytałem te wszystkie wywody na temat jaki to Bascom jest plugawy, ale nie mam wyboru - z przyczyn ode mnie niezależnych muszę go jakoś okiełznać... (a przynajmniej w stopniu podstawowym) Jeśli chodzi o Rotate, to na początku modyfikowałem program z książki autorstwa Marcina Wiązania o Bascomie. Program ma działać tak, że diody zapalają...
chyba mamy trop 'Odebranie jakiejkolwiek informacji z modułu GPS $regfile = "m16def.dat" $crystal = 8000000 Config Portd = Output Portd.0 = 1 Do Toggle Portd.0 Wait 1 Loop dioda świeci się 7s, gaśnie na 7s... do programatora mam wpięty kwarc 8Mhz. Czy mam rozumieć że Atmega używa wbudowanego zamiast niego? Edit: Wszystko jasne - AVRdude programował...
[syntax=c] DDRC = 0xFC; //klawiatura PORTC = 0xFF; [/syntax] Wg. schematu przyciski masz na PORTB. Zrób eliminację drgań styków (sprawdzenie stanu, jeżeli niski poczekaj 20ms, jeżeli dalej niski - wykonaj) A na początek w pętli zrób załączanie i wyłączanie silnika bez obsługi przycisków [syntax=c] while(1) { OCR1A =0x100; _delay_ms(2000); OCR1A =0x00;...
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
Witam, dzisiaj stwierdziłem że rysowanie i podawanie tutaj schematu nie ma większego sensu, opiszę sprawę. Podłaczyłem katody ledów do masy przez oporniki, a anody do poszczególnych pinów uC. Teraz tak wklepując ten program w pamięć pocesora: [syntax=c]$regfile = "m16def.dat" $crystal = 1000000 Config Portb = Output Portb = &B00000000 Config Portd =...
Witam ponownie Spróbowałem z takim zapisem kodu jednak nic to nie pomogło. Czy coś robię źle?? [syntax=c]static uint8_t licznik=1; // zmienna do przełączania kolejno anod wyrwietlacza if(licznik==1){ PORTD &= ~(1<<PD6); //zeruje bit 0 portu D - wyłącza wyświetlacz nr 1 PORTD |= (1<<PD7); //ustawia bit 1 portu D - włącza wyświetlacz nr...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
Podejrzewam, że błąd będzie gdzieś w samym schemacie/płytce, ponieważ przed chwilą złożyłem na stykówce na szybko układ: - Atmega8 - 1x DS18B20 - dioda led i wrzuciłem w niego program: Dodano po 3 Problem z wykrywaniem czujnika rozwiązany. Powodem całego kłopotu okazało się jedno ze złączy (przy magistrali 1Wire), które było uszkodzone i nie stykało....
Witam. Uczę się obsługi Timera 0 w Atmega16. Napisałem sobie prosty kod który ma co ~ 2µs zmieniać stan piny na porcie D. Zegar przyjąłem 14,7456MHz. Oczywiście wszystko robię symulacyjnie w Proteus 7.8. Więc tak, preskaler ustawiłem na 0 i do rejestru TCNT0 wpisuję liczbę 225. A wzięła mi się ona stąd że: 14 745 600 : 30 = 491520 czyli prawie...
Nie napisałeś jaki to procesor. Przykładowo dla Atmega8/Atmega32 wystarczy gdzieś napisać UCSRB.TXEN = 0 Dla Mega328P UCSR0B.TXEN0 = 0 Mowa o Atmega16. Instrukcja UCSRB.TXEN = 0 rzeczywiście działa ale tylko do czasu, kiedy nie połączę się z drugą Atmegą. Tak wygląda początek programu dla Atmega16 (odbiornik): Dodano po 2 Znalazłem jeszcze taką informację:...
Witam! Próbuję sklecić sterowanie silnikiem DC na Atmedze 16 z wykorzystaniem sterownika L293D. To ma być symulacja sterowania roletami na makiecie, czyli potrzebuję zmieniać biegunowość silniczka, a także chciałem mieć kontrolę nad prędkością (czyli wypełnieniem PWM). Zaimplementowałem PWM programowo za pomocą Timera2. Wszystko ładnie chodzi na diodach....
Witam, od jakiegoś czasu próbuję rozwiązać problem odbierania kodu RC5 przez avr'ka. Ponieważ nie jestem do końca pewny zbudowałem (a raczej zaprogramowałem) prosty nadajnik tego kodu. Tak wygląda kod odbiornika: [syntax=c] #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/io.h> #include <stdint.h>...
Wgrałem do Atmega16 prosty programik obsługi przerwań zewnętrznych (poniżej kod). #include <avr/io.h> #include <avr/interrupt.h> SIGNAL (SIG_INTERRUPT0){ PORTB = 0xFF; } SIGNAL (SIG_INTERRUPT1){ PORTB = 0x00; } int main(void){ DDRB = 0xFF; DDRD = 0x00; PORTD = 0xFF; GIMSK = _BV(INT0)|_BV(INT1);...
Niektóre piny portu C są fabrycznie ustawione do obsługi Napisałem, że podpinam go pod wyprowadzenia portu D :D Oto fragment kodu programu Config Portd = Output Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5 Config Lcd = 16 * 2 Cls Czyli nic niesamowitego... powinien ruszyć. Tym bardziej,...
Witam. Zbudowałem układ, który składa się z dwóch części. Pierwsza to generator o częstotliwości 125kHz, druga to przetwornik ADC, który mierzy sygnał i zapala diody w zależności od niego. Oba podukłady (podprogramy) oddzielnie działają poprawnie. Jednak jak skleiłem dwa kody (jeden od ADC drugi od generatora) to już zaczęły się schody. Jak dotąd nie...
a nie można to zrobić bezpośrednio z μC? tzn. podłączyć nogi nadajnika ultradź. bezpośrednio do procka? ja zrobiłem to tak (ale nie wiem jak odebrać sygnał, bez wzmacniania go) $crystal = 8000000 Config Portd = Output Enable Interrupts Enable Ovf0 On Ovf0 Podprog Dim Sonar1 As Bit Dim Sonar2 As Bit Sonar1 = 1 Sonar2 = 0 Config Timer0 = Timer ,...
Dlaczego w programie są ustawiane aż dwa porty? DDRB = 0xFF; DDRD = 0xFC; PORTB = 0xFF; PORTD = 0xF7; z tego co się orientuje to program jest pisany pod płytkę AVT-3500 a ta płytka ma przyciski na porcieD własnie i możliwe że ta konfiguracja jest "na przyszłość" do obsługi tych własnie przycisków.
Witam Trochę dziwnie napisany masz ten program. Poniżej masz mój programik który mierzy temperature i wyświetla na 4 wyświetlaczach., powinien ci trochę zmienić tok myślenia (bez urazy):D Oczywiście musisz go dostosować do swojego projektu. '*****1 Wire na wyświetlaczu LED na Płytce testowej *********** $regfile "2313def.dat" $crystal = 4000000...
Witam. Przejrzałem forum ale nadal nie mogę sobie poradzić z wyświetlaczem . Zlutowałem układ ATmega16+T6963C (128*64) niestety nic nie działa. Wgrywałem pod BASCOMem programy przykładowe oczywiście pozmieniałem konfigurację pinów i nic - tylko czasem pojawia mi sie pozioma linia, a normalnie widać jakby śnieżenie wyświetlacza. Jest to pierwszy układ...
atmega portd portd atmega88 portd atmega8
skuteczny filtrowa ustawienie transportera łucznik pilot plasma
philips aplikacje reset pieca buderus
Kod błędu DTC P0661 w Mazda MPV - lokalizacja i diagnostyka iRobot Roomba: Problemy z podciśnieniem - Diagnostyka i Rozwiązania