Kto traktuje tak samo? TME czy Ty? To jest zupełnie inne. TTL, TTL-l, TTL-s, TTL-ls-to jest co innego. Dodano po 2 A, jeszcze było TTL-h. Ale teraz jest tylko TTL-ls-mocno przestarzałe.
PORTC &= ~_BV(3); - wyzerowanie PORTC |= _BV(3); - ustawienie i jeszcze: PORTC ^= _BV(3); - zmiana stanu.
W uzupełnieniu dodać trzeba by AVCC (niby zasilanie ADC) też mieć podłączone, bo nieużywanie ADC wcale nie zwalania od jego zasilenia. Boleśnie przekonają sie o tym Ci, którzy będą chcieli uruchomić np. PORTC w ATMega32, ale nie zapomnieli o JTAGEN=1.
Witam ! Przetestowałem ten kod: $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc , E = Portc.4 , Rs = Portc.5 Lcd "witam!" Fourthline Lcd "4" End i wszystko jest OK, program się kompiluje Prawdopodobnie powodem nie kompilowania...
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...
napisz config pind.1 = input config pind.0 = input do debounce pind.0,0,klawisz1,sub debounce pind.1,0,klawisz2,sub loop klawisz1: jakas akcja1 /np set pin.c=1/ return klawisz2: jakas akcja2 /np set pin.c=0/ return A zasilanie i mase musisz podpiąć też do tych 2 pinów co pisałeś. Tylko podłącz tak jak jest w programia albo zmień porty Aha mogą...
Witam... Generalnie rzecz biorąc procedury opóźnienia czasowego nie nadają się do modulowania diody IR... Częstotliwość nie jest zbyt stabilna to raz... Dwa nie uzyskasz 36kHz musisz skorzystać z dobrodziejstw timera... Np. tak... #include<avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <inttypes.h> int...
Brakuje klamer, być może miało być tak: [syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = 0xff; DDRB = 0x02; DDRC = 0x00; PORTC = 0x03; while(1) { if(!(PINC&(1<<PC0))) { if(!PORTD) { PORTB |= 0x02; _delay_ms(100); PORTB &= ~0x02; } else { PORTD >>= 1; _delay_ms(80); }...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Podstawowa sprawa - w drugiej linijce kodu masz napisane, że $crystal = 8000000 podczas gdy na schemacie nie masz podłaczonego żadnego kwarca. Jeśli używasz wewnętrznego oscylatora (i oczywiście masz tak ustawione FuseBit'y), to ATmega pracuje na 1MHz i taką wartość powinieneś ustawić w programie, bo nic nie będzie działać, albo będzie, ale "dziwnie"...
Zmien ten fragment: \code #define OW_PORT PORTD #define OW_BIT 2 \endcode na: \code #define OW_PORT PORTD #define OW_BIT 0 \endcode bo bylo ustawione na Port D.2 - chyba, ze tam podepniesz DS'a to bedzie smigac... Pozdro! Dodano po 3 a ten plik z kad wziasc?? 1wire_lib.h To jest wlasnie ten fragment: #include <avr/io.h> #include <inttypes.h>...
Po pierwsze, jest zmienna o nazwie "swr" oraz próba deklaracji podprogramu o tej samej nazwie. Najprościej zmienić nazwę podprogramu na inną. Taki kod mi się skompilował: [syntax=vbnet] '---------------------------------------... ' SWR-Meter DL8UA '---------------------------------------... $regfile = "m8def.dat" $crystal...
http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...
Witam ! (at)emarcus Dziękuję za wyjaśnienia. Pytałem o portC ATmega8 bo chcę pobawić się posiadaną płytką NE406-k, a tu mam LCD podłączone do poru C, część do portu B. https://obrazki.elektroda.pl/5435745300_... 30 albo i więcej lat leżała ta płytka u mnie, przyszedł czas żeby się nią pobawić. W sieci szukałem gołych płytek które by...
Mam problem z plikiem w którym brakuje zamykającej klamry. Szukam jej od dwu dni i już dostaje oczopląsów. POMÓŻCIE proszę ślepemu odnaleźć błąd. // ################################## // ###### SOLAR_MONITOR SYSTEM ###### // ######## ZEGAR STERUJACY ########## // ################################## // created margas 2012 modify 2025 // fusebity atmega...
http://obrazki.elektroda.pl/5959558100_1... Witam :) Razem z kolegą chcielibyśmy się pochwalić naszą maszyną :) Jest to ramie robota oparte na serwomechanizmach modelarskich. Ja zająłem się sterowaniem i elektroniką, a kolega robił projekt 3D w SketchUp i konstrukcje http://obrazki.elektroda.pl/9008440700_1... Początkowo...
Witam Chcę podłaczyć 2 wyświetlacze ILI 9486 tryb 8bit do atmegi 2560 . I mam pytanie , bo mam problem następującej treści. Układ połaczeń jest taki : ATMEGA - LCD PORTC LCD_D0 - D7 bei 8Bit Mode ' PORTG.0 LCD_Reset ' PORTG.1 LCD_CS ' PORTD.7 LCD_RS ' PORTG.2 LCD_WR Rs_disp Alias Portd.7 'Display DC RS Cs_disp Alias Portg.1 'Display CS Res_disp Alias...
No to robię na urodziny prezent dla kogoś z LEDów na ATmega324A-PU. No i będę programował pierwszy mikrokontroler, który nie jest Arduino. Schemat połączenia LEDów wygląda mniej więcej tak: https://obrazki.elektroda.pl/1592528100_... Główną zmianą jest to, że rezystory oznaczone jako 250 mają 200R. Reszta układu: https://obrazki.elektroda.pl/5253513800_...
http://obrazki.elektroda.pl/4926270100_1... Diagnozer joysticków (np. do Pegasusa) na Atmega 8 Projekt Przyszedł wreszcie czas naprawić posiadane przeze mnie joysticki do Pegasusa. Zwykle uszkodzeniu (urwaniu) uległ kabel lub taki niesprawdzony/niesprawny joystick został zakupiony bez znajomości jego przeszłości. Jeśli kable się urwały,...
To w końcu gdzie masz podpięte diody, na PORTB czy PORTC ?
Kolego Fredy wszystkie programy testuje na zestawie uruchumieniowym z atmega 644 ,portc.0 i portc 1 jest zarezerwowany dla SDA i SCI ,dlatego w program który dla Ciebie napisałem musiałem pominąć port.0 i port.1
Program wygląda na ok. Chyba musi sie wypowiedzieć jakiś znawca bascoma ;) . Myslalem ze atmega ma jtaga na portc ale okazało sie ze nie :)
Ale DHT11 podczas oczekiwania jest w stanie wejścia, a więc czyta linię a nie coś nadaje. Dodano po 13 Pewnie będzie "#define PC4 4" w "iom8.h". Nie można było odrazu tak :) Ten przykład pokazuje upierdliwość programowania w C. Takie wielopoziomowe wyłuskiwanie informacji powoduje, że zakres wiedzy na temat programowania w tym języku jest niepotrzebnie...
Witam programu do sterownika schodów nie mam jeszcze napisanego ponieważ nawet taki prosty program nie działa. Niewiem co jest problemem jak wgrywam program to weryfikacja przebieg pozytywnie a atmega nie reaguje tylko ustawia porty wg. pierwszej pozycji. Nawet na tym programie atmega nie zmienia stanu na porcie c [syntax=vbnet][ Config Portc = Output...
Witam. Atmega328p łączy mi się z bluetooth'em wszystko wydaje się ok dopóki nie zacznę obsługiwać znaków odebranych przez BT. Jeżeli ATmega odbierze 1 lub jakąkolwiek cyfrę wszystko działa ładnie ale jak odbierze jakikolwiek inny znak nie chce działać (znaczy jak będę wysyłał dłuższy czas to zadziała ale to nie o to chodzi). Poniżej wrzucam mój prosty...
Witam. Po raz pierwszy zaczynam używać Atmegi128. Chciałem odpalić programik testowy który zapali diody. Zapalam cztery diody na PORTC i to działa. Problemem pojawia się kiedy wstawię do programu dowolne polecenie wait waitms waitus. Program tak jakby się wtedy zatrzymuje. Atmega pracuje na zewnętrznym kwarcu 8MHz. [syntax=basic4gl] $regfile = "m128def.Dat"...
jakies pomysly? Przestać używać wartości numerycznych i zacząć używać symbolicznych z odpowiednimi operatorami bitowymi, takich, jak w plikach nagłówkowych. Nie ma wtedy prawa się nic p... w kodzie... ;) Niestety jestem bardzo początkujacy w programowaniu i tych operatorów logicznych nie rozumiem... A dajac wartosci liczbowe przynajmniej poczesci rozumiem...
Jeżeli pin jest ustawiony jako wyjście to może albo "dać" prąd czyli stan wysoki albo zwierać do masy czyli stan niski... Jeżeli jest ustawiony jako wejście to albo jest w stanie wysokiej impedancji (bit odpowiadający pinowi w rejestrze jest wyzerowany np PORTC &= ~_BV(5)) lub ma włączony pullup (PORTC |= _BV(5))...
Po pierwsze na niektorych pinach PORTC masz JTAG, wylaczyles go? Po drugie - ATMega potrzebuje ok. 6 cykli zegara, zeby wejsc w przerwanie, a twoje instrukcje tez nie wykonuja sie w jednym takcie. Zobacz jaki kod dla przerwania generuje gcc, okaze sie, ze osiagniecie przebiegu rownego clk/2 w ten sposob jest niemozliwe.
A może trzeba dodać $crystal = 80000 Config Portc = &B0010000 Portc = &B0010000
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Proszę - tak w świątecznym nastroju ;) Dodałem korekcję mojego pomysłu. Bardzo prosta ale skuteczna. Nadmienić trzeba, że sterowanie trzema kanałami ma sens wtedy, kiedy potem, gdzieś w kodzie, te kanały mają różne wartości. https://filmy.elektroda.pl/1_1450952163.... [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 64...
napisałem ten kod trochę inaczej i teraz robi 2 kroki w lewo 1 w prawo.. Przedtem w kodzie miałem od pc1 do pc6 zamiast pc0 do pc5.. Teraz ogarnąć w jakiej kolejności podłączać uzwojenia i będzie dobrze, a atmega nic się nie grzeje ? - to dobrze czy źle ? - silnik po dostaniu napięcia trzyma dosyć mocno
W tym momencie jest tylko cos takiego testowego (na różne sposoby probowalem zmieniac stany portów) $regfile = "m128def.dat" $crystal = 14745600 Config Portf = Output Config Porta = Output Config Portb = Output Config Portc = Output Porta = 255 Portb = 255 Portf = 255 Portc = 125 Do Toggle Portf.2 Wait 1 Porta.0 = 1 Porta.1 = 1 Porta.2 = 1 Porta.3 =...
Dla testu daje na PORTC same jedynki i tylko na dwoch pinach PC4,PC5 wymuszam stan a na PC0-PC3 cały czas jest 0 napięcie 0,5V podczas stanu 1 podczas 0 - 0. ATMEGA 8 - fusebity bez zmian, zegar węwnętrzny. PORTD działa bez zarzutów. coś robie źle? ale co? #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void)...
Na moje oko odczytuje tak: A = PortB a zapisuje tak: DDRC = 0 PortC = 255 Ot i cały problem.
piotrwzk - wlasnie udalo mi sie uruchomic rf12.... powiedz w jakim jezyku piszesz ... Ja uruchomilem rfm na atmedze 8 z wewnetrznym oscylatorem 8mhz zasilanie to 3,3V .. Postaram sie pomoc ...a no i zamiescic jakis ludzki opis :) ... powiem ze nie udalo mi sie uruchomic tych modolow w Bascomie - czasem cos dzialalo , czasem nie ,,, nie wiem wydaje mi...
qurde pisze 2 raz:) Najpierw literóweczka :P : //generujemy dodatnia połowke przebiegu PORTc |=_BV(PC4); //sbi,sbi zapalanie PORTc &=~_BV(PC5);//sbi,cbi gaszenie //teraz czekamy przez połowkę okresu sinusoidy for(f=0;f<freq;f++) { delay(1); } "c" z duzej litery :) I jeszcze jedno co to za _BV jakies makro ?? Skąd to wzioleś ?? Podaj jakie błędy?...
atmega wyświetlacz PC0 RS PC1 RW PC2 E PC3 DB4 PC4 DB5 PC5 DB6 PC6 DB7 F_CPU 1000000UL JTagów nie wyłączałem, FUSEbity nie ruszane. nagłówek w bibliotece HD44780.h [syntax=c]#define LCD_RS_DIR DDRC #define LCD_RS_PORT PORTC #define LCD_RS_PIN PINC #define LCD_RS (1 << PC0) #define LCD_E_DIR DDRC #define LCD_E_PORT PORTC #define LCD_E_PIN PINC...
mam jeszcze jedno pytanie dorwałem program w bascomie wsad do innego sterownika na podstawie jego zaprojektowałem schemat . Moje pytanie jest takie czy nie popełniłem błędu w rozumowaniu i na podstawie tego będzie to chodzić ?. I ostatnie pytanie nie rozumiem co ma w programie robić pinD.2 program się wiesza jak zaremuję to (input ster) to program w...
Witam Napisalem bardzo prosty programik. .INCLUDE "m16def.inc" .CSEG .ORG 0 jmp Reset Reset: ldi R17, high(RAMEND) ldi R16, low(RAMEND) out SPH, R17 out SPL, R16 ; call INI_Klawiatury sei Main: rjmp Main INI_Klawiatury: ; Inicjalizacja klawiatury push R16 ldi R16, 0x0F out DDRC, R16 ldi R16, 0xF0 out PORTC, R16...
oki, dzieki, Jest jeszcze jedna kwestia. W Atmega mamy trzy rodzaje rejestrow I/O: PORTx - z ktorego mzna cos odczytac i zapisac - rejestr zawiera dane we/wy DDRx - okresla tym lini (czy jest to wejsci czy wyjscie) PINx - skad mozna odczytac wartosc bezposredni stanu lini Na czym polega roznica pomieczy PORTx a PINx? oraz Jaki bedzie skutek wykonania...
Nioptrzebne nawiasy, jak ci juz pisali PORTC = 0x18 - szkoda czasu na analiwoanie magicznych liczb. Wciecia jak nalezy. A na;isałem ci bo nawet nie widziałem prób w tym kodzie własnorecznego zdebuggowania.
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania impulsów zewnętrznych należy użyć nóżki T1, a nie T0,...
Próbuję zrozumieć działanie przerwań i coś mi to nie wychodzi, chciałem uzyskać efekt że po naciśnięciu przycisku program który jest w pętli nieskonczonej obsługuje przerywanie ale mi to nie wychodzi, o to fragmenty kodu: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> ENABLE_INT0_FLAGING; waitms(unsigned...
Sprawdź na portc taki programik. $regfile = "m16def.dat" $crystal = 4000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Cls Do Lcd "ok" Waitms 250 Loop End U mnie tak działa bez problemu. TYLKO NIEZAPOMNIJ USTAWIĆ FuseByts dla portu C Pozdrawiam
OK, wywaliłem to powielanie i zrobiłem po prostu if i potem else if. Co masz na myśli brak nop ? asm("nop"); ? [syntax=c]PORTA = 0b01111111; if((PINA & 0x08)==0) PORTC = wyswietlacz(1); else if((PINA & 0x04)==0) PORTC = wyswietlacz(2); else if((PINA & 0x02)==0) PORTC = wyswietlacz(3); PORTA = 0b10111111; asm("nop"); if((PINA & 0x08)==0) PORTC = wyswietlacz(4);[/syntax]...
[syntax=c] ISR(USART_RXC_vect) { i = uart_recieve(); PORTC |= (1<<PC5); } [/syntax] W powyższej funkcji wywołujesz funkcję: [syntax=c]// function to receive data unsigned char uart_recieve (void) { while(!(UCSR0A) && (1<<RXC0)); // wait while data is being received return UDR0; // return 8-bit data }[/syntax] która wykouje sprawdzenie...
Chce zrobić aby atmega pracowała tak samo jak układ ULN2803 tylko odwrotnie (wszystkie 8Bity) Zrobiłem tak: $regfile = "m16def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Postb.7 Config Lcd = 20 * 2 Ddrc = 00000000 Config Porta = Output Portc = 1 Deflcdchar...
Po małej przeróbce(ustawione są konkretne piny na wejście /wyjście) silnik nadal nie działa. Problem jest w tym ,że na obu wejściach do mostka (Pin Pa0 i Pa1) są jedynki logiczne, co unieruchamia silnik (bo jest w stanie zabronionym). Próbowałem w programie na jedno wejście wprowadzić 0 i na drugie 1 ,ale po zmierzeniu miernikiem obu wejść nadal jest...
portc atmega atmega32 portc portc atmega8
miękkie hamulce sterownika pompy centralnego mocować wiertło
pochwal swoim sprzętem pochwal swoim sprzętem
Wybór sprzęgła do Opla Vectry C 2.2 Direct (Z22YH) Schemat podłączeń ISO dla Honda Pioneer DEH-6727ZH