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).
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...
Wracając do mojego podejrzenia błędnej interpretacji kompilatora, spróbuj zmienić Twój pierwotny program [syntax=arduino]// --- LCD KS0108 --- // Sterowanie -> PORTC #define LCD_RS PC5 #define LCD_RW PC4 #define LCD_EN PC3 #define LCD_CS1 PC7 #define LCD_CS2 PC6 #define LCD_RST PC2[/syntax] zamieniając na:[syntax=arduino] // --- LCD KS0108 --- //...
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.
Nie ogarniam tej atmegi "robi co chce". Po pierwsze nie mogę programować ze zdjętą zworką "slow_sc" na USBASP przy zasilaniu z 3,3V. Po drugie proste programy które testuje działają jak chcą a są to naprawdę proste programy które zapalają tylko diody na porcie C. Przy zasilaniu z 5V programuje ze zdjętą zworką slow_sck ale program nie działa jak potrzeba....
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...
Witam wszystkich i błagam o pomoc. Otóż polutowałem sobie płytkę z Prockiem jak w temacie, aby zrobić kontroler serwomechanizmów, ale niestety nie chce nawet ruszyć. Mogę zadać początkowy stan portów, ale nie umiem go później zmienić. Napisałem kilka prościutkich programików. Poniżej jeden z nich: $regfile = "m128def.dat" $crystal = 16000000 Config...
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?
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...
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...
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...
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>...
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...
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. 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. Obecnie tworzę projekt na atmega128 i testowałem go na kwarcu 4MHz i wszystko działa poprawnie. Jako że chciałem zwiększyć prędkość działania programu zamieniłem kwarc na 16MHz, wszystkie ustawienia dotyczące kwarcu w bascom AVR zmieniłem i natrafiłem na ciekawy problem. Poszukując przyczyny nie działania programu skasowałem wszystko oprócz konfiguracji...
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...
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...
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...
Witam, Jest to kontynuacja wątku [url=https://www.elektroda.pl/rtvforum/t... Szukałem odpowiedniego programu, na którym mógłbym się wzorować. Niestety program P. Kardasia jest zbyt skomplikowany jak na moje potrzeby, a nie mam tyle czasu, żeby go okroić. Znalazłem za to interesujący projekt ze strony [url=https://www.pocketmagic.net/avr-sdc...
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...
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...
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...
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...
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);...
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...
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...
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. 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...
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 /***************************************...
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;...
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]...
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...
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"...
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 ,...
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...
Przy takim kodzie zabrakło mi SRAM :/ $regfile = "M32Def.dat" $crystal = 16000000 $hwstack = 256 $swstack = 128 $framesize = 128 '---------------------------------------... Dim Timer1_licznik As Byte Dim Buffer(256) As Byte At 256 Dim Write_position As Word Dim Read_position As Word Dim S As String...
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...
Nie mam 8563 żeby przetestować. Poniżej kod do 8563 podobno testowany. Pewnie da się uchwycić różnice względem 8583. [syntax=basic4gl] ' CLOCK.BAS 'This shows how to use the PCF8563 I2C clock device 'The PCF8563 is a PHILIPS device. Look at the datasheet for more details 'The controller used was a ATMega128 'The LCD used is a 128x64 graphic lcd $regfile...
Dzień dobry, Jestem w trakcie tworzenia programu, w którym wyniki wyświetlane na wyświetlaczu graficznym 128x64 chcę zapisać potem na kartę SD. Problem w tym, że polecenia obsługi wyświetlacza graficznego (Boxfill, Line, Circle) "gryzą się" z poleceniem OPEN wykorzystywanym w podprogramie dokonującym zapisu do karty SD. Do programu dołączyłem bibliotekę...
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...
Z kilku tematów z tej strony spróbowałem poskładać jeden program do zapisu i odczytu zmiennych z sd.Program wyszedł mi następujący: http://obrazki.elektroda.pl/7800048900_1... I niemam pewności co do pliku config_AVR-DOS ponieważ skopiowałem go w całości z tej strony[url=http://members.aon.at/voegel/... Karta sformatowana była na fat16...
Hi, mam tu AT45DB321D, na kosci faktycznie cos takiego pisze. ATMEL 0746 45DB321D SW SOIC8. Probowalem pomiedzy 10MHz a 500KHz, te same stabilne odpowiedzi. Jedziemy na 20MHz CPU, ext crystal resonator. wszystko obejrzalem pod oscyloskopem, SPI z ATMEGA88 dziala, to nie pierwszy taki moj boj na SPI, wiec czytam sobie datasheet i co pisze: Manufacturer...
Cześć wszystkim ;) Mam ogromną prośbę o pomoc w sprawie otwierania obrazków w formacie *.bgc ktore beda umieszczone na karcie pamięci i atmega ma je otwierać i wyświetlać na kolorowym lcd . Probowałem już kilka różnych sposobów ale za każdym razem obrazek się nie wyswietlał poprawnie . Serdecznie pozdrawiam Bartek Nizej kod programu do obslugi karty...
Cześć wszystkim ;) Pisze w sprawie takiej ze postanowiłem połączyć atmege32 i kartę microSD 2 gb i tu sie pojawiaja problemy a mianowicie program nie pokazuje mi pojemnosci karty niby inicjacja przebiega ok ale cos nie tak nizej wstawiam kod programu $regfile = "m32def.dat" $crystal = 8000000 $lib "Lcd-pcf8833.lbx " 'special color...
Witam wszystkich :) Jakiś czas temu złożyłem odtwarzacz plików dźwiękowych wav korzystający z wbudowanego w atmege32 PWM 8 bit-owego, postanowiłem poprawić jakość odtwarzanego dźwięku poprzez dodanie zewnętrznego DAC-a którym jest TDA1543 . Pojawiło się kilka problemów ponieważ nie wiem w jaki sposób mogę podłączyć i odpowiednio przerobić kod programu...
Juz byl taki temat ale został zamknięty. Moj problem polega na tym ze nie moge ruszyc ds1820 w C z wykorzystaniem bliotek rklib do obslugi ds. #include <avr/io.h> #include<avr/interrupt.h> #include<avr/eeprom.h> #include<string.h> #include "lcd.h" #include "ds18x20.h" #include "delay.h" uint8_t gSensorIDs[OW_ROMCODE_SIZE];...
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...
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
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
atmega32 portc portc atmega8 portc atmega32
chrysler radio kostka canon mg5250 urwany kluczyk
pralka bezawaryjna wiertarka stołowa
Indukcyjność cewki płyty indukcyjnej Bosch, Electrolux, Whirlpool – typowe wartości i pomiary Maksymalna prędkość obrotowa silnika 1.3 CDTI Opel Meriva