Wiem ile to waitus. Nie Rozumiesz, jak dam waitus 3 to program zapala diody na portc.0 i 1 i zatrzymuje się na waitus 3 i nie włącza diodek na portc.2 i 3.
Ten bit uruchamia lub wyłącza tryb zgodności z nie produkowaną już megą103. W tym trybie dla przykładu masz do dyspozycji tylko jeden USART, jeden 16bitowy timer zamiast dwóch, PORTC działa tylko w trybie jednokierunkowym (tylko jako wyjście) itd... Z pozostałymi różnicami postaraj się zapoznać już samodzielnie (nota str.4, 5).
Wcale nie pisałem że trzeba to robić w kodzie, tylko na wypadek gdyby ktoś nie umiał ustawiać fusów. Co do dokumentacji to do tej też trzeba podchodzić trochę z dystansem i zaczynać czytać od erraty (przykład - atmega128). Pozdrawiam Kamil
Do tego procka najlepiej zastosować EEPROM z wewnętrznym zatrzaskiem młodszego adresu, jak to było w '51. W ATmega128 PortA przesyła Dane i młodszy adres, PortC górny adres a PG0=/WR, PG1=/RD, a PG2=ALE i oczywiście musisz w opowiednich rejestrach uaktywnić te alternatywne funkcje portów.
zadeklaruj przed funkcją main zmienną: unsigned int i; w while(1) napisz: { PORTC=0x00; for(i=1;i;i++); PORTC=0xFF; for(i=1;i;i++); } I napisz co się stało :)
Witam Szczerze powiedziawszy to wszystko jedno gdzie co podepniesz. Może być kolumny PortB, a wiersze PortC, albo jak tam chcesz. Wszystko zależy od programu jak go napiszesz. Pozdro
To czego szukasz jest rozwiązane w Arduino i można łatwo skorzystać z tego. Instalujesz bibliotekę OneWire i DallasTemperature, otwierasz przykład Multibus, w tablicy podajesz numery pinów, klikasz wgraj i na UART lecą temperatury z wybranych pinów. Koszt to 6k flash i 516B RAM dla UNO (Atmega328P). Problemem jest to, że nie ma w typowych płytkach ATMEGA128...
1. Dlaczego VGA, a nie np. LCD/TFT we właściwej rozdzielczości z kontrolerem? 2. Dlaczego Atmega1284, a nie bardziej zaawansowany uC z DMA? 3. Dlaczego wewnętrzny RAM, a nie zewnętrzny SDRAM? Jeżeli jednak musi być to VGA, Atmega 1284 i wbudowany RAM, to da się to zrobić szybciej, ale niewiele, ponieważ pobranie danych z pamięci i wyplucie ich na port...
Oj.. nie zrozumieliśmy się chyba. Dioda na schemacie sterowana Q1 oczywiście będzie świecić tylko wtedy gdy S1 jest naciśnięty. W opisie kodu napisałem że w obsłudze przerwania przypisywana jest wartość 0x01 do rejestru PORTC. I I właśnie do PORTC0 podłączona jest ta dioda(nie obecna na schemacie), która mnie interesuje.
Ponieważ Atmega32 tylko próbkuje i wstępnie obrabia dane, natomiast pełna analizą i wizualizacją zajmuje się ATmega128. W temacie: http://www.mikrocontroller.net/forum/rea... autor opisuje podłączenie LCD: Im Moment hängen die 8 Datenlaitungen an PORTC, die steuerpins wie folgt: D/I: PC0 R/W: PC1 EN: PC2 CS1: PC3 CS2:...
W programie też zmieniłbym kolejność: 1) na początek: $regfile = "m128def.dat" $crystal = 16000000 2) konfiguracji portów we/wy na początek 2) niepotrzebne jest Porta = 255, Portc = 255 3) dla podciągnięcia do plusa WEJŚĆ w bascom bardziej właściwą funkcją jest SET 4) i tu dopiero konfiguracja portów wyświetlacza.
Ja to rozumuję tak lecz myślę że gdzieś jest błąd: [syntax=basic4gl]Do Reset Clk Reset Le1 For I = 1 To 48 Portc = &B11111111 Set Clk Reset Clk Next I Set Le1 Waitms 100 Reset Clk Reset Le1 For I = 1 To 48 Portc = &B00000000 Set Clk Reset Clk Next I Set Le1 Waitms 100 Loop[/syntax] Czyli przykłąd migających ledów - czy wprowadzenie danych jest poprawne?
Witam A nie trzeba przypadkiem panelu podpiąć jako dzielnik rezystancyjny? Panel dotykowy wg. producenta można bezpośrednio podpiąć pod porty ADC (Atmel) byle na jak najkrótszym kablu (mam około 5cm kabel miedziany podpięty pod nóżki ATMegi16) oraz znalazłem niedawno także stronkę z opisem jak podłączyć oraz źródłami w c, ale na ATmege128 wykorzystujący...
Jasne, niestety ciało funkcji nie ma znaczenia. Po prostu pierwsza funkcja chodzi jakby miała pętlę nieskończoną w ostatniej linijce. Możemy mieć coś takiego: [syntax=c] void f1() { PORTC = 0x00; } void f2() { PORTC = 0xff; } int main() { DDRC = 0xff; f1(); f2(); while(1) return 0; ([/syntax] Już uprościłem kod całkowicie szukając błędów. To co wyżej...
Note: The ATmega128 is by default shipped in ATmega103 compatibility mode. Thus, if the parts are not programmed before they are put on the PCB, PORTC will be output during first power up, and until the ATmega103 compatibility mode is disabled. Może to jest przyczyna a może niekoniecznie. Dla pewności przeprogramuj fusy wyłaczajac ten tryb i Jtag jeśli...
Zmieniłeś prescaler a nie czytałeś noty swojego mikrokontrolera ;) Na początku rozdziału o ADC przeczytasz że ATmega128 potrafi wygenerować maksymalnie 15 tyś próbek na sekundę ;) • Up to 15 kSPS at Maximum Resolution Myślę więc że wynik 37 to efekt przepełnienia licznika ;) Sam podziel 16 000 000/s (16MHz) przez 15 000 ... Proponuję zmierzyć...
Witam! Dziękuje za podpowiedź ale dalej problem nierozwiazany:|. Częsciowo udało mi się wyjść z sytuacji zaznaczając opcje Unsigned chars(-funsigned-char) która pozwolila na działanie pętli ze zmiennymi typu char. Mam jeszce jedno pytanie podobne do poprzedniego. Gdy debugger "wejdzie" do funkcji (podprogramu) to nie chce spowrotem powrócić do programu...
Witam! Pracuję na serwie cyfrowym HSR 8498HB i próbuje dostać się do trybu Serial Mode. Ciekaw jestem czy ktoś z was miał z tym do czynienia. Zgodnie z instrukcją do serwa należy wysłać następujący szereg bajtów (przykładowo aby ustawić prędkość serwa i odczytać pozycję): Byte 1 = Header = 0x080 Byte 2 = Command = 0xE9 Byte 3 = Data 1 = Servo ID (0x00...
Heh troszkę ruszyłem do przodu. Okazało się że cały portc był odwrócony tzn MSB z LSB zamienione. Naprawiłem to programowo :) ekrany pięknie się kolorują :D Jutro postaram się ładnie uporządkować program i wrzucę dla potomnych bo ciężko mi było znaleźć w necie obsługę tego LCD w bascomie :) EDIT: Tak jak wspominałem wrzucam dla innych ;) [syntax=basic4gl]'Obsługa...
Witam :) Zaczynam przygodę z AVR i ostatnio napotkałem następujący problem. Mam taki oto fragment programu na ATmegę128, potrzebuję obsłużyć przerwanie. Problemem jest to, że po uruchomieniu programu i wywołaniu przerwania po jego wykonaniu program nie wraca do "Main", a zaczyna od linii "jmp Reset" jednocześnie przestawiając licznik cykli o ponad 65k...
Witam, Wlasnie probuje pierwszych krokow z Atmega128. Nabylem plytke ZL8AVR i mam dosc nietypowy problem. Po prau dniach zmagania z nie dzialaniem ukladu i wyrywaniem sobie wlosow z glowy po nocach zauwazylem ze jezeli steruje portem w funkcji to program zawiesza swoje dzialanie i wyglada na to ze nigdy nie wraca z wywolanej funkcji. Mam taki kawalek...
Witam ponownie, próbowełem już wszystkiego i ciągle to samo. Wrzucam procedurę obsługi lcd: Sub Init Call Gstatus_check ' adres domu - tekstowy A = &H00 Call Gwrite_data Call Gstatus_check A = &H00 Call Gwrite_data Call Gstatus_check A = &H40 Call Gwrite_command Call Gstatus_check ' wielkosc obszaru tekstowego A = &H28 Call Gwrite_data...
To nie moze byc wina stykow bo dioda bo zakonczeniu procedury przerwania zapala sie. Co prawda nie jest filtrowane -ale dioda moze najwyzej pownie zgasnac :) Mam wrazenie ze na portach zostaja przywrocone stany sprzed przerwania - czy to mozliwe? Ponizej jest uproszczony kod: (kompiluje gcc+avrlib) #include <avr\io.h> #include <interrupt.h>...
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 =...
Witam. Przenieść inicjalizację do pętli głównej - czyli przenieść np: Config Graphlcd = 240 * 128 , Dataport = Portc , Controlport = Porta , Ce = 6 , Cd = 3 , Wr = 4 , Rd = 5 , Reset = 7 , Fs = 0 , Mode = 8 Jeśli o to chodzi to przeniosłem i podczas kompilowania bascom wywalił mi masę błędów. Pozdrawiam.
Witam, Również mam kłopot z połączeniem ATmega8 z komputerem. Kombinowałem na różne sposoby ale jakoś mi nie wychodzi. Proszę pomoc. Układ mam połączony w/g poniższego schematu. Mikrokontroler zaprogramowałem wg/g poniższego kodu. W komputerze ustawiłem Hyper Terminal : Liczba bitów: 9600 Bity danych: 8 Parzystość: Brak Bit stopu: 2 Sterowanie: Brak...
Witam, męczę się już któryś dzień nad nową Atmegą128 i gdy nic nie znalazłem na forum co by mi pomogło postanowiłem zadać pytanie. Czemu ten uC nie wchodzi mi w przerwanie? Napisałem prosty program testowy, steruje on silnikiem krokowym, po określonej liczbie impulsów ma zmienić ICR1 co powoduje wzrost częstotliwości a zarazem prędkość obrotową, na...
Witam. Jestem poczatkujacym w C i powili uruchamiam sobie kolejne moduly proca atmega128, napotkalem niestety na problem w uruchomieniu timera1, wyglada na to ze wogole nie startuje bo nie wchodzi mi w obsluge przerwania przepelnienia licznika, ma to dzialac tak ze przy kwarcu 11.0592MHz po odpowiednim zaladowaniu licznika ma mi zapalac diode co ok...
Witam! Proszę o pomoc. Piszę program obsługujący klawiaturę matrycową - w sumulatorze wszystko działa, ale w momencie wgrania do ATmega128 nie działa. Klawiatura wygląda tak: http://img485.imageshack.us/img485/2132/... tranzystory podpięte są do PORTC0-3 Linie wierszowe klawiatury do PORTA0-3 Dioda LED podłączona jest do PORTB0 Cały program...
Witam! Kupiłem wyświetlacz LCD zgodny z HD44780 i próbuję go okiełznać od wczoraj, ale chyba jest z nim coś nie tak. Po pierwsze mam zwarcie (miernikiem sprawdziłem ciągłość) między "LED A" i "VSS(-)". Czyli nie mam jak zasilić jednocześnie podświetlenia i samego wyświetlacza.. Ale nawet gdybym miał się tym nie przejmować i podświetlenie spisać na straty...
No to po kolei: 1. #define SWITH1_ON cbi(DDRC,PC4);sbi(PORTC,PC4) //ustawiam bit pc4 na wyjscie na stan wysoki To raczej zmienia port na wejsciowy z pull upem, a nie wyjsciowy. BTW, powinno raczej byc SWITCH jesli to z angielskiego :) 2. UART_PutStringP1("ALA"); Ta funkcja czyta string z FLASH, natomiast w ten sposob przekazujesz wskaznik na string,...
Pozwolę się podłączyć. Pytanie do mirekk36. Czy takie coś: '$sim $regfile = "M168def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 = Portc.2 , Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5 Cls Lcd "OK" Waitms 100 Config Portb = Output Set Portb.1 Config Portd = Input Portd = 255 Sw0 Alias Pind.0...
Witam mam problem z uruchomieniem ADC na Atmedze 128. Program ma robic pomiar co 1 sek i wyslac wynik po RS232. Caly czas program jednak podaje mi wynik konwersji = 0. Ogolnie jako zegar mam kwarc 1.8432Mhz, wiec dalem w przetworniku preskaler 16 co daje czestotliwosc 115,2 kHz, wiec taka z przedzialu <50kHz;200kHz> jak zaleca producent. Nie mam...
Witam wszystkich zainteresowanych wiem temat zapewne wałkowany nie raz, ale proszę o pomoc. Mianowicie chcę sobie zrobić zapis odczyt na karcie sd : 1. Jak podłączyć tę kartę do atmegi128 czy tak jest dobrze: ss--pin.10(at)---/cs--1(SD) sck-pin.11(at)---clk--5(SD) mosi-pin.12(at)-Data In-2(SD) miso-pin.13(at)-Data Out-7(SD) Dodano po 1 Wprowadziłem...
Same z siebie się raczej nie ustawiają. Nawet jeżeli gdzieś byś ustawił rejestry przypadkiem to i tak w mainie nie masz sei(); Bardzo ciężko analizować Twój kod, szczerze - nie podejmowałem nawet próby bo też wrzuciłeś jakiś bałagan. Pokomentowane fragmenty kodu, miliardy parametrów i obliczenia z kosmosu, niepotrzebnie includy - naprawdę ciężko się...
Mam problem z następującymi układami, Modem nie chce mi się zalogować do sieci. Komunikacja RS wydaje się być w porządku jednak odbieram jakieś krzaczki tami programik na szybko napisałem: $regfile = "m128def.dat" $crystal = 7372800 $baud = 9600 Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0...
Witam :) Sprawdziłem Twój kod na mojej ATmega128 i działa. Z tym, że po zakończeniu konfiguracji timer'ów dałem while(1); bo nie wiem co masz dalej w kodzie. [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...
Kontrast ustawiany więc to nie jego wina. Jeśli dobrze zrozumiałem powinna wystarczyć zmiana adresowania na taką? [syntax=csharp] #define LCD_CMD_PORT PORTA #define LCD_CMD_DIR DDRA #define LCD_DATA_IN PINC #define LCD_DATA_OUT PORTC #define LCD_DATA_DIR DDRC // Porty sterujące ----------------------------------------... // ----------------------------------------...
Panowie, czy któryś z was używał VUSB z pamięcią zewnętrzną RAM ? Ja mam 64k na mojej płytce z atmega128 i niestety gdy dodaje: [syntax=c] void before_main(void) __attribute__((naked)) __attribute__((section(".init3"))) { MCUCR = 1<<SRE; SFIOR = 1<<XMBK | 1<<XMM0; DDRC = 0x80; PORTC &= ~(1<<7); SP = 0xffff; } [/syntax] do...
Cześć :) Pisze ponieważ mam "wyzwanie" z komunikacja pomiędzy NRF24l01+. Męczę temat od dłuższego czasu i nie mogę znaleźć nic co pomogłoby mi naświetlić sytuacje. Tak wiec staram się wysłać dane z jednej Atmegi128 do drugiej przez NRF ale bez skutku. Do obsługi używam biblioteki użytkownika Excray którą znalazłem na elektrodzie jakiś czas temu. uint8_t...
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Cześć, Moja ATmega128 zachowuje się w nieco dziwny sposób. Mianowicie ustawiam w niej wszystkie piny z portu F na wejście z podciągnięciem do VCC (czyli stan wysoki na każdym pinie), a następnie "przemiatam" piny w PA2-PA7 oraz PG2, ustawiając w nich po kolei stan niski. Następnie czekam na zmianę w porcie F (projekt służy do czytania przyciśnięcia...
#include <avr/io.h> #define F_CPU 16000000L #include <util/delay.h> #include <float.h> #include <inttypes.h> #include <math.h> #include <stdio.h> #define stop1 PORTA|=(0<<PA3); PORTA|=(0<<PA4) #define lewo1 PORTA|=(0<<PA3); PORTA|=(1<<PA4) #define prawo1 PORTA|=(0<<PA4);...
Dzięki za podpowiedź. Będę mógł sprawdzić dopiero pod koniec tygodnia. Niestety dopiero teraz, jak "mam mokro w gaciach" wczytałem się w datasheet i wyględa na to, że zupełnie niepotrzebnie kombinowałem, bo miałem ustawione wszystko jak należy. Mam jeszcze jedno pytanie, ale dotyczy ono raczej assemblera i 1wire. Mianowicie kopilator FastAvr z instrukcji:...
Witam, mam następujący problem: przy podłączeniu wyświetlacza tak jak w configu stan pinu porta.0 jest zawsze niski czyli wyświetlacz cały czas jest zresetowany. Czy to jest wina zmiany pinów dataport i controlport? Zakładałem, ze można dać je dowolne tylko tak aby piny controlport były z jednego portu uC i tak samo z dataport ale, które port to wszystko...
Kurdę no przerwanie jest wywoływane co 310us a to jest bardzoooo wiele cykli zegara na to by mogła się wykonać cała pętla while, cały czas nie rozumiem czemu na atmega 16 działa a na atmega128 nie chce działać :/ sprawdzałem bity ustawiające timer i przerwanie, są one takie same dla mega 16 i 128 więc nie wiem w czym jest problem :( Ten program działa...
Witam, Korzystam z minimodułu MMEGA01 z prockiem ATmega128 oraz zegarem PCF8583. Program pisze w Bascom. Do magistrali I²C mam podpięte rezystory wg. schematu modułu 2k7. Problem polega na tym, że gdy chce odczytać godzinę minutę oraz sekundę, to sekundy przeskakują co kilka np, z 25 na 31 itp.. z minutami z resztą też coś jest nie tak. Sprawdzam...
Witam, Chciałbym przerobić nie swój kod programu pod żyroskop l3g4200d. Kod znalazłem w internecie jest napisany właśnie na atmegę 1284p, a ja potrzebuję go przerobić na atmegę8. Kod wygląda następująco: [syntax=basic4gl]'======================... ' Project: L3G4200D 3tripple axes gyro Test #1 '...
Te czarne punkty to kontrast, zmniejsz go trochę na potencjometrze. Aby wyeliminować błąd podłączenia, ściągnij sobie BASCOM-AVR i skompiluj taki kod: $crystal = 8000000 $regfile = "m128def.dat" Config Graphlcd = 240 * 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8 Dim A As Byte...
Naniosłem poprawki do kodu, nie mam jak sprawdzić komunikacji diodą, bo nie mam jak się z nią podłączyć (przynajmniej nie wiem jak to zrobić). Zmieniłem przejściówkę USB-RS na kabel RS-RS z crossowaniem, ale wydaje mi się, że jest jeszcze gorzej, bo teraz po podłączeniu kabla nie zapala się dioda odbioru przy porcie, która przy przejściówce zapalała...
Jest sobie Atmega128 z podłączonym monochromatycznym wyświetlaczem LCD (128x64). Oto schemat podłączenia : http://obrazki.elektroda.pl/3254687200_1... Wyświetlacz jest standardowo konfigurowany : Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce1 = 1 , Ce2 = 0 , Cd = 3 , Rd = 4 , Reset = 2 , Enable = 5 Dane...
Witam, Jako, że moje starcie z programowaniem mikrokontrolerów trwa nie całe 2 miesiące(w roboczo godzinach pewnie nawet i 1/100 tego :) ) Prosiłbym o wybaczenie mi jakichś oczywistych dla wtajemniczonych błędów, a jeśli dałoby radę to jakieś konkretne wskazówki. Chciałem zmierzyć dokładny czas działania poniższego kodu w mikrosekundach lub dowolnej...
arnoldziq wrote: Czy poza sygnałemy TXD i RXD w FT232 podłączasz do ATMEG-i inne wyprowadzenia ? Zrobiłem kiedyś taki układ na ATMEGA16L/8MHz i działał bez problemu. Co prawda, oprogramowałem uC w BASCOM-ie, ale to nie powinno mieć wpływu. Nie mam teraz dostępu do tego projektu, a program został w mojej starej firmie, ale z tego co pamiętam dane które...
poprawiłem swój stary kod: //Piny do pc //Data #define KBD_DATA_PORT PORTC //pull #define KBD_DATA_P 5 //pull #define KBD_inDATA_PIN PIND #define KBD_inDATA_P 1 //Clk #define KBD_CLK_PORT PORTC //pull #define KBD_CLK_P 4 //pull #define KBD_inCLK_PORT PIND #define KBD_inCLK_P 3 //pull to pin podłączony do tranzystora ściągającego do 0 //podobnie jak...
Witam. Założenie jest takie. po uruchomieniu programu powinien zacząć odliczać czas (0-300sekund) do czasu wykrycia stanu 0 na porcie C.0 ......... Aby nie podawać gotowego listingu, dam ci tylko drugą część programu, którą już w wyjątkowo prosty sposób możesz zmodyfikować dla całości wymogu. Zauważ, że po włączeniu układu Timer1 jest zatrzymany. Możesz...
Witam, Po wysłaniu adresu slave zamiast ACK otrzymuję NAK. Program zatrzymuje się na pętli while((TWSR & 0xF8)!= 0x18. Czy ktoś wie, co jest tego przyczyną i jak to naprawić? [syntax=c] #include <avr/io.h> #define F_CPU 7372800UL #define SCL_CLOCK 100000L int main(void) { DDRC = 0xff; PORTC = 0xff; TWBR = ((F_CPU/SCL_CLOCK)-16)/2; TWCR = (1<<TWINT)|(1<<TWSTA)|(1<...
Napisalem prosty program aby wyslac na hyperterminal znak 'a'. Niestety na terminalu nic sie nie pojawia. To sa porty do ktorego jest podpiety programator. Odlaczalem go rowniez. Korzystam z przejsciowki na usb ft232rl. Ponizej podaje kod zrodlowy i schemat podlaczenia. Prędkosc transmisji ustawiam na 4800b/s a uC chodzi na zewn. kwarcu 16Mhz. #include...
hmm panowie fajnie poczytać wasze opinie na takie tematy jednak chyba nie idą one w temat mojego problemu. Użyłem case i juz wiem ze to jest nie właściwa instrukcja warunkowa. Doprzygotowania swojego menu wykorzystałem if-y jednak przy kilku poziomowym menu troche sie w tym zamieszałem i gdybyście szanowni koledzy pomogli mi troszke zoptymalizować kod...
nie pomoglo :(, moze wkleje oba kody dla nadajnika i odbiornika. Teraz wogole jakis smieszny efekt jest ze co bym nie podal to zawsze wyswietla "v"... MASTER: #include<avr/io.h> #include <util/delay.h> #define SS_NISKI() (PORTB &= ~0x02); //stan niski na SS #define SS_WYSOKI() (PORTB |= 0x02); //stan wysoki...
1. Nie widzę deklaracji zegara systemowego więc skod kompilator będzie wiedział jak zrobić delay_100 ms W CodeVision ustawia sie to we wlasciwosciach projektu 2 Jesteś szybki jak zobaczysz na diodzie jak sie zapala i gaśnie co 0,1s Jak zmienie na 0,25s to i tak nic to nie zmienia, i tak nie działa /***************************************...
Na początku zaznaczę, że siedziałem nad tym ostatnie 3 dni. Jestem z tego powodu CHOLERNIE WKURZONY. Ostatnie doświadczenia z kompilatorem AVR-GCC i obsługą TIMER0 i TIMER2 doprowadziły mnie do konkluzji, iż w Nocie Atmegi128 lub w headerach jest błąd. Spójrzmy na tabele preskalera TIMER2. http://obrazki.elektroda.pl/3213520200_1... Oto prosty...
Witam mam wyswietlacz oparty na T6963c 240x64 Problem polega na tym ze nie dziala wyswietlanie obrazow BGF Wyswietlanie napisow , linii i innych elementow dziala poprawnie poza obrazami bgf Wyprobowalem wszystkie ustawienia w konwterze bmp<> i BGF i najlepiej wychodzi 6x8 240x64 - tylko ze obraz kola wyglada jak poszatkowany (tak jak by zapis...
Witam, Mam problem z zaprogramowaniem atmegi128 wraz z wyswietlaczem lcd oznaczenia (WC1604a0-sfylync06) . Prosze o pomoc Kod programu: #include <avr/io.h> #ifndef _UTIL_DELAY_H_ #define F_CPU 6000000UL #include <util\delay.h> #endif int main(void) { //USTAWIENIE PORTOW E I B JAKO WYJSCIA DDRE = 0B11111111; DDRB = 0B11111111;...
Witam. Prosiłbym o sprawdzenie poprawności programu. Usiłuję skomunikować się z układem poprzez Atmega128 i SPI programowe. Jednak układ po wysłaniu ramki nie wystawia na końcówce Busy stanu wysokiego i stoi. Jak wyremuję sprawdzenie tego pinu to efektem jest odczyt "255" i całkowity brak reakcji na dotyk. [syntax=vb]$regfile = "m128def.dat" ' specify...
Troche sie zamotałem i nie wiem jak wybrnąć... Jak zliczyc przerwania on timer0, innymi słowy jak policzyc ile 1ms wystąpiła przy podczas przerwania wtrysku... [syntax=basic4gl] $regfile = "m128def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 32 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6...
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, Pracuje nad projektem w którym wykorzystuje Atmege 128. Klawiatura matrycowa 4x4 jest podłączona pod PORTF. Schemat klawiatury poniżej: http://obrazki.elektroda.pl/3729797600_1... Poniżej listing programu [syntax=basic4gl] $regfile = "m128def.dat" $crystal = 16000000 Config Lcd = 16 * 2 'deklaracje wyświetlacza Config Lcdpin =...
Witam, Jak w tytule, nie wiem co jest grane z moją atmega128A. Mogę odczytywać/zapisywać fuse bits. Mogę wgrać program. Niestety, ale nawet tak prosty program jak sterowanie dowolnym pinem nie działa. Przykładowo dla testów chciałem zapalić diode na portc.7. ' ########################## USTAWIENIA ########################## ' ****** PODANIE IFNO O MIKROKONTROLERZE...
while (1) { PORTE ^= _BV(0); PORTE ^= _BV(1); PORTA=0xFF; PORTC=0xFF; LED5_TOGGLE; //TS("start"); _delay_ms(300); PORTA=0x00; PORTC=0x00; _delay_ms(300); } właśnie zaskoczyło przy wewnętrznym taktowaniu 1M. diodki migają ale bardzo wolno, zmieniają stan raz na dwie sekundy. piegzik - pomogłeś chociaż mój problem nadal nie jest rozwiązany... Dodano po...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
tutaj jest cały kod: [syntax=c] #include <avr/io.h> #define F_CPU 10000000 #include <util/delay.h> int main() { int8_t i; int8_t k; int8_t m; int8_t n; unsigned char liczba_LED [10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; DDRB = 0xFF; DDRD = 0XFF; DDRC = 0xFF; for(;;) { for(i=0; i<=9; i++) { PORTC = 0xC0; _delay_ms(10);...
W inicjalizacji portu: void PORTinit(void) { PORTC=0xFB; // wartość startowa DDRC=0xFF; // port C jako wyjście } Po restarcie piny proca sa ustawuione domyslnie jako wejscia, Ty podciagasz te wejscia do + : PORTC=0xFB; // wartość startowa a potem dopiero ustawiaszport jako wyjsciowy : DDRC=0xFF; // port C jako wyjście Powinno byc to...
Witam Mam problem z timerem 1 trybem CTC w ATmega128. Kod wyglada tak #define _20_MS_ 5000 void servo_init(void) { SERVO_DDR|=(1<<SERVO_PODSTAWA_... SERVO_DDR|=(1<<SERVO_RAMIE_PIN... SERVO_DDR|=(1<<SERVO_LOKIEC_PI... SERVO_DDR|=(1<<SERVO_NADGARSTE... SERVO_DDR|=(1<<SERVO_CHWYTAK_P...
A mógłbyś pomóc, bo mam właśnie problem z tym czujnikiem i to w obudowie TO92. Podłączony do Atmega8 z zewnętrznym kwarcem 8MHz do PortB.0 Podłączenie nóżek mam takie:1-masa,2 - uC, 3-do 5V i rezystorem 3,8k do nóżki - 2 Pokazuje średnio -112 C, temperatura po trzymaniu czujnika wzrasta. Zachowuje się tak niezależnie od rezystora jaki podepnę. KOD:...
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...
Witam, Temat zablokowanych AVR często się pojawia, niestety żadna z wyszukanych rad mi nie pomogła. Wgrałem do ATMEGA8L-8PU program ze strony Atmela pokazujący użycie uC jako RTC. Program był przygotowany na ATMega128 i dostosowując go do 8-emki źle popatrzyłem na wartość programowanych Fuse-bitów. Wpisałem do Low Fuse 0xE3, tak jak było oryginalnie...
Witam Mam problem z zapisem daty i godziny do PCF8563. Wywaliłem wszystko i został sam zapis i odczyt: [syntax=basic4gl]$regfile = "m128def.dat" $crystal = 16000000 $lib "glcdKS108.lib" $hwstack = 128 $swstack = 128 $framesize = 128 Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 3 , Ce2 = 4 , Cd = 7 , Rd = 6 , Reset =...
Witam serdecznie! Mam wielki problem z bascomem i magistralą i²c. Otóż kiedyś, gdy miałem bascoma 1.11.7.7 magistrala i²c działała bez problemów, teraz mam Bascoma 1.11.9.5 i nie mogę się skomunikować z żadnym układem i²c. Zegar i pamięć eeprom w ogóle nie odpowiadają, testowałem na 2 płytkach (jednej własnej konstrukcji, druga BASCOM...
Koledzy bardzo dziękuję za odp. jednak muszę przyznać, że każdy ma rację. Ja piszę w bascomie ponieważ go lubię i nie piszę programów zaawansowanych. Ja tylko prosiłem o pomoc z com-em. Zobaczę w helpie jak nie dam rady to jeszcze będę prosił o pomoc. Dodano po 1 Panowie jednak coś mi nie działa, proszę o pomoc. Program który jest w uC - nadawanie kodu...
dziękuję ślicznie działa :) nie wiedziałem ze ustawienie konkretnego bitu w słowie kasuje inne bity teraz już będę wiedzieć :) Dodano po 31 Te ustawienia przetwornika nie dały widocznych rezultatów, tzn działa tak jak działało dla silników 1,2,3,4 dla silników 5,6 nadal nie działa. Te silniki są sterowane zwykłymi przyciskami dlatego badam stan wejść...
Mam prośbę o sprawdzenie kodu, mam za zadanie zrobić układ Rezystora dekadowego sterowanego cyfrowo( rezystory zwierana przez przekaźnik) natrafiłem na mały problem, w 5 dekadzie gdy inkrementuje wartość dochodzi ona do 3 0000 i wraca na -25536 a powinno inkrementować się aż do 90000. Kod programu: #include <avr/io.h> #include <util/delay.h>...
#include <mega128.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)...
Po raz kolejny problem tego typu a dokładnie procedury nie działają - przy odczycie czujnika cały czas jest stan wysoki: Czujnik podłączony 3 przewodowo, rezystor podciągający 4,7k, procek taktowany kwarcem 16MHz bez włączonego preskalera, połączenia elektryczne i zasilanie jest wporządku, inicjacja oraz wysyłane rozkazy są prawidłowe a mimo wszystko...
Problem już chyba rozwiązany. Wystarczyło wyrzucić z timera fragmenty obliczeń i wstawić je np. do jakiejś deklaracji/podprogramu. Program teraz wygląda tak i jak na razie wszystko działa i poprawnie się wyświetla: [syntax=basic4gl]'---PROCESOR-----------... $regfile = "m128def.dat" $crystal = 16000000...
a czy mógłbym w takim razie prosić o jakiś przykład z getrc5? ja używam czegoś takiego: '---------------------------------------... ' RC5.BAS ' (c) 2000 MCS Electronics ' oparte na nocie aplikacyjnej AVR410 f-my Atmel '---------------------------------------... $regfile "m1280def.dat"...
Dzięki za zainteresowanie tematem. Rzeczywiście mogłem lepiej opisać problem na samym początku. Już naprawiam błąd. System wygląda w ten sposób, że Atmega128 taktowana sygnałem o częstotliwości 14.745600 MHz (F_CPU = 14745600) podłączona jest bezpośrednio do 3 osiowego drivera silników krokowych TB6560. Konkretnie mówiąc pin 3 portu D podłączony jest...
Pin konfigurowany jest na początku, przed konfiguracją SPI. Dodano po 2 I jeszcze tradycyjne pytanie - chciałem mieć więcej wyjść Zrobiłem tak: [syntax=basic4gl] If Mid(tempstring2 , 6 , 6) = "LED1ON" Then Reset Led1 End If If Mid(tempstring2 , 6 , 7) = "LED1OFF" Then Set Led1 End If If Mid(tempstring2 , 6 , 6) = "LED2ON" Then Reset Led2 End If If Mid(tempstring2...
Witam, od wczoraj zmagam się z problemem odbioru kodu RC5 w urządzeniu, w którym mam multipleks dużej ilości wyświetlaczy 7-segmentowych LED. Przerwania na multipleks przychodzą co około 4ms. Multipleksowanych cyfr jest łącznie 48, ale pogrupowane są one, tak jakby były tylko 4 cyfry. W każdym przerwaniu kody segmentów wysyłane są szeregowo na 3 rejestry...
Dziękuję za informację kod poprawiłem jednak teraz już nie wyświetla się kompletnie nic. Próbuje podświetlać jakieś pixele ale na ekranie cisza. Dodam że atmega nie zawiesza się kod wykonuje się cały na oscyloskopie widać że dane się transmitują. Wyświetlacz jednak milczy. Wrzucam cały kod gdyż jest jego nie dużo a może ktoś coś zauważy. [syntax=c]...
hmm, może inaczej. Zamieszczam działający programik testowy. Na jego bazie można troszkę pogrzebać i zrozumieć co i jak. $regfile = "m32def.DAT" $crystal = 1000000 $baud = 19200 $hwstack = 64 $swstack = 32 $framesize = 64 Config Graphlcd = 240 * 128 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 ,...
No to jest bez pętli for #include <avr/io.h> #include <util/delay.h> #define cbi(add,bit) ((add) &= ~(1 << bit)); #define sbi(add,bit) ((add) |= (1 << bit)); #define F_CPU 16000000UL int i, z ,i1 ,z1; void serwo (void) { sbi(PORTE,PE5); //...
Dziękuję za zainteresowanie moim problemem. W ferworze walki poplątałem wiersze, ale było dobrze jak jest teraz i problem nadal istnieje. Program piszę w studio4, nazwy bitów były umieszczone w nawiasach i bez też nie pomogło. SP oto program: [syntax=text] .nolist .include"m128def.inc" .list .defAL = r24 .defAH = r25 ;akumulator .equ SYS_FREQ_HZ = 8000000...
Witam, postanowilem rozlozyc sobie twi na czesci pierwsze jako ze to dosc skomplikowany interfejs, no i odrazu pojawil sie problem... Ustawiam sobie mega128 w MASTER RECEIVER oraz mega88 w tryb SLAVE TRANSMITTER. To co do tej pory udalo mi sie zrobic to to ze dostaje odpowiedz na start bit, tzn. TWSR=0xA8 dla SLAVE, a po stronie MASTER TWSR=0x40, czyli...
Podczas kompilacji kodu z wykorzystaniem biblioteki Radzia KS0108 wyskakuje mi szereg takich błędów, z którymi nie mam pojęcia co zrobić. http://obrazki.elektroda.pl/1600912000_1... Dla pomocy zlokalizowania błędów tu kody: -main.c [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include "KS0108.h"...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
Może to Ci coś pomoże. To jest część programu sterującego obrotami silnika elektrycznego. Na początku masz funkcję opóźniającą, obsługę przerwań, później inicjacje wyświetlacza, wyświetlanie znaku i tekstu na wyświetlaczu, funkcję menu gdzie następuje inicjacja wyświetlacza, oraz główny program. W tym programie nie trzeba używać biblioteki do obsługi...
Witam ! Tracąc dziesiątki godzin szukania w Internecie i dwa tygodnie prób i błędów z w/w LCD proszę o pomoc (i pokazanie błędu) Dołączam kod w http://obrazki.elektroda.pl/7865128700_1... [syntax=c][/syntax] // --------- sterownik LCD -> chyba NT7108/NT7107 (podobny do KS0108 ) --------------- // ATmega 128 + POWERTIP -> LCD PG12864...
Wykonałem termometr, który ma rejestrować wyniki z pomiaru temperatury na karcie SD w pliku TXT. Wzorowałem się na projekcie rejestratora pogodowego wykonanego przez kolegę Duch_a. Napisałem, krótki program na podstawie w/w projektu, który ma utworzyć plik na karcie i zapisać w nim krótki tekst. Niestety w wyniku działania programu plik nie zostaje...
Witam. Jestem początkującym w dziedzinie programowania na elektronice znam się dobrze. Chciałbym zbudować komputer pokładowy do mojej hondy civic i znalazłem na elektrodzie projekt z pod tego linku. http://www.elektroda.pl/rtvforum/topic22... Płytkę zaprojektowałem na nowo pod atmege128 reszta bez zmian. Wyświetlacz od Siemensa s65 ls020 podłączyłem...
Wcześniej sprawdzałem czy wchodzi do przerwania z pustą główną pętlą w pragramie - włączałem buzzerka w przerwaniu tylko. Teraz, powinno być tak, że po wejściu do przerwania (w moim przypadku przy wciśniętym klawiszu) buzzerek powinien dzialac, ale i po wyjściu nadal brzęczeć - a tu nic. Po wyjściu z procedury przerwania milknie, czyli gubi gdzieś ustawienie...
atmega32 portc portc atmega8 portc atmega32
firmware router planet montaż dysku rejestratorze lodówka samochodowa wentylator
ekspres przelewowy dekoder schemat
Przekształcenie prądu stałego w zmienny za pomocą diod, rezystorów i kondensatorów Skacząca głośność w słuchawkach - przyczyny i rozwiązania