Sprawdziłem, jednak chodzi o DDRB, który jest adres przed PORTB w rejestrze, a ktoś zamiast pisać DDRB woli PORTB-1
Witam. Mam problem ... .. bo nie chce mi się zajrzec do helpa ... ;) ldi R17, PINB ... To powyżej oznacza LDI R17,0x16(adres PINB). a)Musisz odróżnic dane bezpośrednie , od pośrednich bo inaczej klapa ;) b)Do odczytów rejestrów I/O uzywa się IN REG,IO lub LDS REG,IO :idea: Piotrek
No i na początku, zamiast tych kilogramów literek wystarczy: DDRB|=1<<0|1<<1|1<<2|1...
Masz cos jeszcze podlaczone do tego portu? Wez sprawdz takie program: #include "delay.h" #include <avr/io.h> void main() { DDRB |= _BV(6); PORTB | = _BV(6); while(1) { PORTB |= _BV(6); delayms(100); PORTB &= ~_BV(6); delayms(100); } }
Zrób mini test. Skonfiguruj PORTB.7 = Output i użyj tego OCR1C, albo podeśle Ci na PW ten poprawiony DAT ;)
Din = Pinb.3 , Dout = Portb.3 ten sam port??
Makra dotyczące SlaveSelect, powinny wyglądać następująco: #define SS_NISKI() (PORTB &= ~0x04); //stan niski na SS #define SS_WYSOKI() (PORTB |= 0x04); //stan wysoki na SS 0x01 - odpowiadało by za PB0 0x02 - za PB1 0x04 - za PB2 - pełniący rolę SS 0x08 - za PB3 0x10 - za PB4 0x20 - za PB5 itd., itp.
A spróbuj zrobić tak: void del (void) { PORTB|=(1<<rs); return; }
Generuje sygnał PWM z timera1 naPB5, potrzebuje ten sam sygnał opóźnić o kilka taktów zegara ,zanegować i wystawić na innym wyjściu . Czy jest to możliwe wewnątrz procesora, bez wykorzystania zewnętrznych elementów? Jeśli tak to proszę o sugestię. Próbowałem bezskutecznie w ten sposób : while (1) { PORTD=~PORTB; }
Jaką masz optymalizację? Pokaż co powstaje w pliku *.lss w pierwszym i drugim przypadku. Poza tym spróbuj zrobić tak jak poniżej i daj znać czy coś się zmieni w działaniu: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define output1_DIR DDRB #define output1_PORT PORTB #define output1 PB0 void portInit() { output1_DIR |= (1<<output1);...
Zerknij na ten artykuł [url=http://mikrokontrolery.blogspot.com... bo np. te linie kodu (i kilka innych) nie robią tego czego się pewnie spodziewasz. [syntax=c]PORTD&=(0<<LCD_DI); PORTD&=(0<<LCD_RW); PORTB&=(0<<LCD_E); PORTB&=(0<<LCD_CS1);...
witam. posiadam wyswietlacz graficzny i procesor atmege128 po podlaczeniu i poprawnym skonfigurowaniu na wyswietlaczu swieca wszystkie piksele. Po podlaczeniu do atmega8535 dziala prawidlowo. w czym jest sęk? Czy sa to moze ustawienia fuse bitow? Czy ktos z was posiada wytlumaczenie do czego sluza poszczegolne fuse bity w atmega128? Program w bascomie....
z czy rezonator i kondesatorki nie przeszkadzaja w niczym?? Dodano po 29 Jest poszlo.Zbudowalem generator na drugim procesorze: do set portb.1 waitus 1 reset portb.1 waitus 1 loop DZIEKI ZA POMOC
Założę się, ze nie sprawdzałeś oscyloskopem czy analizatorem logicznym jak wydjada transmisja. Gdybyś to zrobił, to nie używał byś postu B do ustawiania a D do kasowania bitu, np [syntax=c] void FT800_PD(_Bool state) { if(state) PORTB |= (1<<PB4); //Aktywuj PDN else PORTD &= ~(1<<PD); //Deaktywuj PDN } [/syntax] Definiujesz stałe [syntax=c]...
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
Odgrzebując temat, co do ATMEGA128, to mam pytanie, bo na schemacie mam PORTG, czy jego też można używać, tak jak PORTB, PORTD, w sensie Input, Output?
Witam, chcialbym sie podlaczyc po ten topic gdyz mam pewien problem z obsluga DS1820 i DS18B20 z ATMega128 Mianowicie, po podlaczeniu w trybie 2wire (1 - GND, 2 - PinB.7/PinE.7 itp., 3 - Vcc 5V) do ATMega128 z kwarcem zewnetrznym 10MHz (innego uzyc nie moge) po wykonaniu komend w Bascom AVR: config 1wire= portb.7 dim rgn(8) as byte 1wreset wait...
Niestety dostałam tak wykonaną płytę z ATmega bez możliwości ingerowania w to jak jest wykonana (niestety). Mam wątpliwości co do poprawności fragmentów kodu związanych z pamięcią SRAM - umieszczenia w niej odczytanej wartości z klawiatury, bowiem jeżeli zmienię w kodzie ... sbis PINA, PINA0 ldi R16, 0 ... na ... sbis PINA, PINA0 sbi PORTB, PORTB0 ......
Witam!!! Staram się uruchomić podświetlenie w wyświetlaczu LCD z S65 za pomocą PWM na procesorze ATmega644. Mam kod z ATmega128 i chce go przerobić na mojego procka. Kod na ATmega128: PORTB &= ~_BV(PB7); // clear port before enable DDRB |= _BV(PB7); // will be used for OC2, must be output TCCR2 = _BV(WGM21) | _BV(WGM20)...
Program pisany pod bascom avr wersja darmowa (ograniczenie programu do 4kB). ATmega128 Kwarc 16MHz Banalny program testowy na początek: $regfile = "m128def.dat" $crystal = 16000000 Config Portb = Output Do Portb.2 = 1 Portb.1 = 1 Portb.1 = 0 Loop End program wpisany do atmega128. wynik działa. Ale wystarczy że do programu dorzucę komendę np....
Testuj $regfile = "m128def.DAT" $crystal = 16000000 Config Pinb.6 = Output Set Portb.6 Do Set Portb.6 Waitms 250 Reset Portb.6 Waitms 250 Loop End Dodano po 57 Jak dziala to szukaj roznicy :P
Masz poniżej zawartość dwóch plików, które trzeba podmienić: [syntax=c] #include <util\atomic.h> #include <util\delay.h> #include <avr\io.h> #include "1wire_basic.h" uint8_t Error; uint8_t PinMask; void OW_SendBit(bool bit) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { DDRB |= PinMask; _delay_us(3); if(bit) DDRB &= ~PinMask; _delay_us(60);...
Rozumiem ale pojąc nie mogę :) DDR ustawiam sobie jako wejście 0 PORT tu podaje 1 i kwestia PIN-u daje 0 przycisk mam teraz połączony miedzy PA0 a Masą. to ustawienie dla przycisku. a jak ustawic 1 dla PB0 aby wcisniecie przycisku dawało 1 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRA = 0x00; DDRB = 0x01;...
Witam, Jak byś zobaczył do HELPa Bascoma to byś dużo się dowiedział :) $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 'set the baud rate for the first hardware UART. $baud1 = 9600 'set the baud rate for the second hardware UART. 'when CONFIG COMx is not used, the default N,8,1 will be used Config Pinb.7 = Output Config Com1 = Dummy...
Jak wspomniałek program prosty bo do zapalania diody. Natomiast procesor jest na płytce z tym co widać na schemacie + goldpiny od każdego wyprowadzenie uC http://obrazki.elektroda.pl/1850554100_1... http://obrazki.elektroda.pl/8149509100_1... [syntax=vb] $regfile "m128def.dat" $crystal = 16000000 Config Portb = Output...
Problem rozwiązany ;] okazazło się iż w opcji projektu miałem wybrane domyśle urządzenie Atmega128! Dziękuję Wam za pomoc, jesteście wielcy!!!
Witam! Od jakiegoś czasu programuje w języku C pod attiny2313 i rzekłbym wszystko było w porządku. Jednak gdy przerzuciłem się na uC atmega128 już na wstępie miałem problemy: void foo(int i) { PORTB ^= _BV(i); } funkcja działa na attiny, ale na atmedze już nie... Okazało się że 128 "rozumie" tylko to, co napisze w "maini'e",...
Wstawiam po poprawkach [syntax=c] #include <avr/io.h> //definicja LED1 (do którego pinu podłączony LED1) #define LED1 PB4 //definicja LED2 (do którego pinu podłączony LED2) #define LED2 PB5 //definicja KLAWISZ (do którego pinu podłączony klawisz) #define KEY0 PA0 //definicja ADCIN (wejście ADC) #define ADCIN PF0 void main(void) { //Uruchomienie...
Witam ponownie po dłuższej przerwie, problem SPI udało mi się rozwiązać i nie było to związane, jak sugerował zumek, z błędną inicjalizacją bloku SPI. Błąd polegał na tym, że jeśli w trybie master nóżka SS jest zaprogramowana jako wejscie, to służy ona innym układom zewnętrznym do przełączenia układu nadrzędnego w tryb slave. Ja w swoim układzie nie...
Witam, mam procesor ATMEGA128 16AI zasilany z 5V i podłaczony do niego LCD i MMC zasilane 3.3V. Magistarla SPI została do nich podpięta przez rezystory poza klinią DO (data out karty MMC). Po włczeniu układ nie reaguje na odczyt zapis do karty MMC, może 3,3V z DO mmc nie jest rozróżniany przez AVRa jako stan wysoki? Wyświetlacz LCD działą dobrze i ma...
Cze, //Funkcja inline static void spi_init(void) { return; } //Program główny int main() { DDRB |= 1<<5; PORTB &=~(1<<5); spi_init(); while(1) PORTB |= 1<<5; } Sprawdzam stan na porcie PORTB5. Gdy zakomentuje wywołanie funkcji, program działa. Jest stan wysoki na wyjściu....
Witam. Na poczatek uprzedzam ze mam niewielkie doświadczenia związane z mikrokontrolerami więc prosze o wyrozumiałość. Dzieje sie tak, Atemega pozwa sie programować, zmieniać Fuse Bits, reaguje na proste pojedyncze polecenia programowe typu portb=255, ale gdy próbuję uruchomić najprostrzy program typu: config portb=output h: portb=255 waitms=250 portb=0...
Witam. Potrzebuje pomocy przy sprawnym uruchomieniu SPI na ATmega128. Chce wysyłać po SPI do 12 bitowego przetwornika DAC (MCP4921) dane. Przetwornik jest podłączony do standardowych wyjść SPI w atmedze, MOSI (PB2), SCK (PB1), LDAC(PB4), SC(PB5 lub PB0). Piny są ustawione jako wyjścia. Najpierw sygnał SC ściągany jest do zera, następnie następuje zapis...
Witam, proszę o podpowiedź co należało by zmienić aby po wciśniećiu przycisku pojawiała się tablica str2 #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" int main(void) { char str1[] = "napis"; char str2[] = "wcisniety przycisk"; lcd_init(); LCD_DISPLAY(LCDDISPLAY);...
ok postaram sie poprawic jak usiade popoludniu rozpiska bitow w portach . Wiec tak PORTE = cala szyna danych: 0B D7-> 00000101 <- D0 PORTB - najmlodsze 3 bity sa odpowiednikiem E,R/W,RS. wyglada to w ten sposob: PORTB = 0B00000E -> 1, R/W -> 0 RS -> 0. Możliwe ze to problem wlasnie z opoznieniem przed E bo jeżeli zapisuje cokolwiek na...
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...
chyba w atmega128 SPI jest osobno niż ISP(programator). Podpinasz normalnie SCK do CLK, MOSI do SI, a latch enable i output enable do dowolnych pinów np do wolnych pinów PORTB źródła mam tylko w C, ale to banalne wysyłasz szeregowo 16 bitów i później impuls na LE i włączasz jeśli nie masz OE pamiętaj tylko przy tych układach o kondensatorach i prowadzeniu...
Ale po co znaki \\ ? - własnie o nie się rzuca kompilator Open \"pomiar.txt\" For Append As #2 dodatkowo w konfiguracji trzeba sprawdzić Spsr.0 = 1 : Const Cmmc_soft = 0 'SPI Sprzętowe ' Podanie pinu wyboru układu Config Pinb.4 = Output 'wskazanie, który Pin jest CS karty MMC/SD Mmc_cs Alias Portb.4 Set Mmc_cs ' Definiowanie Pinu układu HW-SPI,...
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...
proponuje Ci jednak spradzic ten kod, zmienaijac tylko albo szybko procka w makefile, albo tu w kodzie, po wysalniu jakiegos znaku powineienes dostac odpowiedz w postaci jedynki. Jak to nie działa, to masz pewność że to nie wina kodu. #include <avr/io.h> // dostęp do rejestrów #include <util/delay.h> #include <avr/interrupt.h> #include...
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 wszystkich. Mam pewwien maly problem i pomyslalem ze zapytam fachowcow. Posiadam sterownik silnika krokowego (a raczej kilka) 4,2A podzial 1/128 ktore maja wejscia izolowane (optyczne). I jeden impuls na wejsciu terownika to wiadomo jeden krok silnika. Chce to sterowac z atmega128 i dotad robilem to tak: (sama idea podawania impulsow) do set portb.0...
Witam. Próbuje uruchomić wysyłanie znaków do komputera za pomocą RS232 i mam problem, nie mogę nic wysłać. Korzystam z programatora skt200 i po dłuższej analizie przebiegu programu przy pomocy diody doszedłem do wniosku, że nie jest ustawiany bit UDRE1 czyli rejestr UDR1 niby jest zajęty. Moje doświadczenie z AVR nie jest duże ale z innymi peryferiami...
Witam Mam spięty atmega128 z max6675 przez sprzętowy interfejs SPI ss - pb0 sck - pb1 mosi - wisi miso - pb3 układ max6675 wysyła dane ale nie odświeża. Aby odczytać aktualne dane musze zresetować uC Nie wiem gdzie popełniam błąd jeśli mógł by któryś z kolegów spojrzeć na to.. Program odczytuje 2 bajty danych z max6675 i wysyła na uart z faktu ze oscyl....
Witam, Mam problem i brak mi już pomysłów żeby go rozwiązać. Otóż, mam do Atmegi128 podłączoną pamięć DataFlash AT45DB041D, któa jest połączona w taki sposób (układ MMnet01): http://obrazki.elektroda.net/19_12767798... SPI inicjalizuję w taki sposób: void spi_init(void) { DDRB |= ( 1 << PB1 ); //SCK DDRB |= ( 1 <<...
Witam - od kilku dni walcze bez powodzenia z przepisaniem programu z AVR DOS na C -> FatFS Platforma sprzetowa ta sama co do AVR DOS (ta sama PCB)na AVR DOS działa , na FatFS nie che Atmega 128 z kwarcem 11,059200 Hz, karta SD zasilana z 3,3V atmega128 z 5V. Napięcia dopasowane za pomocą rezystorów. Dopasowywałem przykład ze #define DO_INIT()...
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 =...
[syntax=c]#define DDR_IN 0 #define DDR_OUT 1 #define PORT_SEL PORTB #define PIN_SEL PINB #define DDR_SEL DDRB #define PORT_SDI PORTB #define PIN_SDI PINB #define DDR_SDI DDRB #define PORT_SCK PORTB #define PIN_SCK PINB #define DDR_SCK DDRB #define PORT_SDO PORTB #define PIN_SDO PINB #define DDR_SDO DDRB #define RFXX_SCK 1// | #define RFXX_SDO 3// |RF_PORT...
Jeśli wartości ładowane do rejestrów OCR3B i OCR3C będą mniejsze niż OCR3A to da się te wszystkie przerwania z porównań wykorzystać. Programik testowy (ASM): .include "m128def.inc" .cseg .org 0x00 rjmp start .org OC3Aaddr rjmp _ctc_isr .org OC3Baddr rjmp _oc3b_isr .org OC3Caddr rjmp _oc3c_isr .org 0x50 start: ldi r16, high(RAMEND)...
Dla Mad Bekona W międzyczasie (a więc w czasie migania diodami) muszę na przykład wyłączyć pare kluczy, przesłać sygnał aby inny procesor zapisał swoje dane, odmierzać inne czasy (bo klucze będą wyłączane w odstępach czasowych) i tego typu sprawy. Pozdrawiam Dodano po 5 Do Boski Dialer To już sobie sam dopracuję. A korzystam z ATMEGA128. Timer 16-o...
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...
Witajcie Na początku zaznaczę ze program piszę w Bascomie. Natrafiłem na taki oto problem. Mam atmege128 i podpiętą do niej kart SD tradycyjnie pod SPI. Pomijam walkę z komunikacją z kartą bo okazało się że działa tylko przy ustawieniu w pliku config_mmc Soft-SPI. Ale OK działa odczyt, zapis, no wszystko. Problem pojawił się kiedy dorzuciłem takie oto...
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ę...
Witam. Mam taki program w C do prób z PWM. #include <avr/io.h> int main( void ) { DDRB=0x08; //PB3 - wy (OC1 - wyjście PWM), pozostałe we PORTB=0; //bez podciągania TCCR1A=0x83; //PWM 10 bitowy TCCR1B=0x03; //preskaler=3, co przy 10-bit PWM daje Fwy=ok. 61Hz TCNT1L=0x00; //wstępne ustawienie licznika1 TCNT1H=0x00; OCR1A =...
dobra.. mam teraz taki kod.. tylko teraz mi nie chce wyświetlać nic w terminalu.. co jest nie tak? int main(void) // program główny { DDRB = 0xFF; PORTB = 0xFF; UART_init(); // inicjalizacja portu szeregowego sbi(LED_PORT_D,LED_BIT); // uyj linii jako wyjscia char odebrano; while(1) // petla nieskonczona {...
mam dziwny problem: przy takim programie ldi r16,0b101 out 0x21, r16 ldi r16,0b011101 out 0x21, r16 ldi r16,low(0x199) out SPL,r16 ldi r16,high(0x199) out SPH,r16 sbi ddrb,6 sbi portb,6 reset2: nopnop jmp reset2 reset jest co 20 ms (+-) ldi r16,0b101 out 0x21, r16 ldi r16,0b011101 out 0x21, r16 sbi ddrb,6 sbi portb,6 reset2: nopnop jmp reset2 reset...
To ci się w ogóle kompiluje. Dziwne te aliasy "Bmmc_miso Alias 1" "Bmmc_sck Alias 1" ALIAS jest podobna do #define w języku C. Po prostu nazwie przed słowem kluczowym "przypisujesz" inną wartość - za słowem kluczowym, właśnie po to by nie przerabiać całego programu na nowo tylko same "przypisania". To, że najczęściej programy wykorzystują konstrukcje:...
mam kolejne pytanie: czy jest jakaś funkcja w Codevision która włącza konkretny bit w porcie w ten sposób że podaję port i bit który chcę włączyć, bo ze mogę zrobić np. PORTB.1=1 to wiem, ale w AVR-GCC jest taka funkcja: cbi(PORTB, i) i nie umiem znaleźć w helpie czegoś podobnego. AVR-GCC to prawie wstwka asemblerowa. Pojedyńczy bit portu możesz zadeklarować:...
Witam, mam taki problem muszę komunikować atmege16 z atmegą 128 (obie L) przez uart i uklad sn75176(Rs 485) . Do układu mam także dołączony terminal przez (max232). Program ma działać tak: mega16 odbiera z terminala i wysyła dalej do 128 ta odbiera daną wysyła z powrotem do 16. Problem polega na tym , że jak w obu megach mam ustawiony port, na którym...
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...
[syntax=cpp]// Sterowanie dioda LED podłaczona do linii PD4 mikrokontorlera // za pomoca przycisku podłaczonego do linii PD3 mikrokontrolera #include <avr/io.h> // dostep do rejestrów #include <compat/deprecated.h> int main( void ) // program główny { sbi(DDRD,4); // uyj linii PD4 jako wyjscia sbi(PORTD,3); // "podciagnij" do logicznej...
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...
Witam. Podłączyłem kartę SD do uC ATmega128. Problem jaki się pojawił jest z gatunku tych najmniej ciekawych - po podłączeniu zasilania, karta raz się dobrze inicjalizuje, następnie zapisuje, odczytuje, dopisuje do plików wszystko co bym chciał, jednakże już za innym razem po uruchomieniu układu inicjalizacja karty zwraca błąd. A więc raz działa, a...
Reszta jest ok, bo steruje też z SPI ekspanderem i działa. Procek to ATmega128 To jest init: void spi_init(void) { DDRB |= 0b00000111; //ustawienie kierunku bitow portu SPCR = _BV(SPE) | _BV(MSTR); //tryb nadrzedny, predkosc 4MHz, wlaczenie SPI, big endian, wlaczenie przerwania SS_WYSOKI(); //stan wysoki na SS }...
Zrobiłem aktualizacje do 2.0.7.6. Obsługuje bez problemu USBasp, no i biblioteki do SD faktycznie lepsze - obsługują SDHC i można np. sprawdzić rodzaj karty SD. Tylko zapisywany ciąg na karcie trochę inaczej jest. Zamiast spacji jest teraz "kropka" i cały tekst bardziej "zbity" w całość. Co do rC5 to nic się nie zmieniło, właściwie to gorzej bo pracuje...
Witajcie Niedawno wyszperałem sobie z moich zasobów LCD 3.2" na sterowniku SSD1298. Z czystej ciekawości, może trochę z nudów i chęci nauki postanowiłem go ożywić :). Zrobiłem sobie płytkę o identycznych wymiarach jak LCD z atmega128. No i zaczeło się. Nadmienię iż program piszę w bascomie i pewnie wielu z was powie że nie nadaje się on do tego i zapewne...
Przerobiłem program na Atmega328. Teraz ma tylko odbierać dane z master na Atega1284p i wysyłać do Domoticz. [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 = Buffered , Size = 150 ,...
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. Piszę procedurę obsługi SPI w Atmedze. W pewnym momencie oczywiście trzeba sprawdzić flagę, czy dana się wysłała. Jednak symulator nie generuje tego przerwania. Czy tak już ma symulator? Z Helpa wyczytałem, że jest symulacja SPI i przerwań, u mnie nic się nie zmienia. Oczywiście mam ustawione globalne przerwania i te od SPI. Oto kod: #include...
Witam od dwóch dni walczę z połączeniem karty SD z Atmega128. mam taki oto testowy kod: main.c [syntax=C] int main(void) { USART0_Init(); TCCR1B |= (1<<WGM12); // tryb CTC TCCR1B |= (1<<CS11)|(1<<CS10); // 8Mhz / 64 /1250 = przerwanie co 10ms OCR1A = 1250; TIMSK |= (1 << OCIE1A); // Zezwolenie na przerwanie CompareMatch od rejestru...
Mam problem z odczytem danych z ADC po SPI. Nie jestem pewien czy napisany program jest poprawny dlatego prosiłbym o ewentualne wyszukanie błędu i jakieś naprowadzenie jak go poprawić. Na CH1 układu MCP3204 podaje napięcie z potencjometru. Dane chce wyświetlić w postaci liczby oddawanej przez ADC. GLCD działa i zmienne, które miały być wyświetlone działają,...
Witam! Kiedyś, gdzieś w internecie wyczytałem że Hard-spi to szybszy sposób komunikacji procesora z np. kartą sd niż SOFT-SPI. Bardzo długo męczyłem się żeby At128 dogadała się z kartą sd przez HARD-SPI ale w końcu się udało. Napisałem prosty program zapisujący na kartę zmienną typu byte jednocześnie licząc ilość tych zapisów w czasie 1sek. [syntax=vbnet]Wait...
Witam Mam płytkę z Atmega644P na której mam złącze SD.Gdy karta jest włożona to całkowity pobór prąd wynosi 220 mA, gdy kartę wyciągnę to spada do 140 mA. Dodatkowo Atmega się grzeje, gdy karta jest włożona, gdy ją wyciągnę to już nie. Karta jest zapisywana poprawnie. Inicjuje ją kodem jak poniżej: Schemat poprawiony Może jest tam błąd ? http://obrazki.elektroda.pl/8641795700_1...
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 /***************************************...
Ja mam podobny problem z ATmega 32 i z przerwaniem od przepelnienia licznika T1. Program caly czas siedzi w przerwaniu nie moze nie z niego wrocic. Kod wyglada mniejwiecej jak ponizej. jezeli w funkcji main w petli while jest printf to program wraca z przerwania. Jezeli wstawie tam np swiecenie diody to program krazy caly czas w przerwaniu. Moze mi...
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...
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...
OK, ale sam program po wyrzuceniu wszystkich dodatków to nadal prawie 500 linii. Więc zamieściłem tylko część inicjującą. Czy coś przeoczyłem? static volatile unsigned char key1=0, key2=0, key3=0, key4=0; static volatile unsigned char odczyt_keys=0; static volatile unsigned char odczyt_time=0; SIGNAL(SIG_INTERRUPT6) { if(!(PINB&0x01))...
Mam wielką prośbę o pomoc. Mam napisać następujący program dla procesora atmega8 (pisze w AVRStudio). Na porcie B pin0 robi za pierwszego leda, pin1 za drugiego leda. Na porcie D pin0 robi za pierwszy przycisk, pin1 za drugi przycisk. Po naciśnięciu przycisku pierwszego miga LED1 co 1s. Po naciśnięciu przycisku drugiego miga LED2. Gdy nic nie jest naciśnięte...
Witam. Mam problem ze startem pamięci at45db081d. Poniżej schemat. http://obrazki.elektroda.pl/1957945200_1... Właściwie jest taki sam jak w znanym MMnet01 propoxa. Po podaniu zasilania na płytkę atmega odczytuje cały czas FF dopiero chwilowe zwarcie wspólnego połączenia linii RST,WP,VCC do masy powoduje prawidłowy odczyt statusu z pamięci....
Witam wszystkich. Pisze w Bascomie , procesor atmega128 Mam 3 silniki krokowe podlaczone do sterownikow ktore sterujemy za pomoca sygnalow step/dir. (krok/kierunek). Do tej pory robilem to tak: zeby silnik zrobil np. 100 krokow dim A as byte dim B as byte B=100 for A=0 to B set portb.0 waitms 100 reset portb.0 waitms 100 next A Problem polega na tym...
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, wzorując się na książce "Mikrokontrolery AVR w praktyce" powstał taki oto kod #include <io.h> #define tau0 6 int main(void){ char licznik = 100; DDRB = 0x01;//wyjsciem generatora bedzie PB0 TCNT0 = tau0;//stala czasowa TCCR0 = 1; //timer0 bedzie pracowal bez preskalera while(1){ while((inp(TIFR)...
Generalnie we wszystkich językach musisz grzecznie poinformować kompilator gdzie ma umieścić zmienną do której chcesz zagadać bo jak tego nie zrobisz to umieści ją tam, gdzie mu będzie wygodnie. Sposób lokalizowania zmiennej zależy od typu kompilatora w którym piszesz. Najczęściej. DATA - pamięc wewnętrzna; XDATA - pamięc zewnętrzna; więc swoją zmienną...
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...
U mnie jest tak: Const Cmmc_soft = 0 #if Cmmc_soft = 0 ' --------- Start of Section for HW-SPI ---------------------------------------- ' define Chip-Select Pin Config Pinb.4 = Output ' define here Pin for CS of MMC/SD Card Mmc_cs Alias Portb.4 Set Mmc_cs ' Define here SS Pin of HW-SPI of the CPU (f.e. Pinb.0 on M128) 'Config Pinb.4 = Output...
Ja to zrobiłem tak na ATmega128 (wyciąłem zbędne dla tego tematu rzeczy): ----------przerwanie-------------------- SIGNAL(SIG_OUTPUT_COMPARE1A) //przerwanie co 3,84ms { switch (nrLED) //EVERY TIME IN INTERRUPT { case 1: { PORTB=_1; //pod PORTB podpięte są katody 7segm. a _1 to komórka pamięci w której jest to, co chcę...
Witam, Chciałbym odpalić SPI slave na attiny861. Niby wszystko idealnie z dokumentacją a mimo to nie działa... Czy ktoś mógłby pomóc? Jest jakiś bit gdzie się uruchamia SPI enabled ?...mecze sie z tym dosyć długo i nic... Może ktoś poratuje sprawnym kodem ? Poniżej zamieszczam mój kod: #include <avr\io.h> #include <util/delay.h> void Inicjacja_spi()...
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...
jeszcze raz oba programy tym razem w tekscie nie zalaczniku jak ostatnio: pierwszy jest ok na przerwaniu /***************************************... #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #define ON(X) outp(1<<(X), PORTB) #define OFF() outp(0, PORTB) #define F_CPU 7372800 /*...
Przykład ten udowadnia właśnie jak przy pomocy gniota o nazwie Bascom stworzyć gniota który nie radzi sobie z kartą SD i graficznym LCD.Może już pora otworzyć oczy i nazwać rzeczy po imieniu. Trzeba przestać sapać nad bascomem i C i nauczyć się asemblera. Bo reszta działa jak tłumacz w google ... Gdybym miał tyle czasu aby siedzieć i uczyć się C to,...
Witajcie, Posiadam mikrokontroler Atmega128A i chcę zmusić go do procy z zegarkiem PCF8563. Programuje procesor w Bascom: [syntax=basic4gl]$regfile = "m128def.dat" $crystal = 16000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Portb = &B11110001 Config Portg = &B00011100 Config Porte = &B00000000 Config Sda = Porte.3 Config Scl = Porte.2 Config...
Kriss Pewnie sprzętowy SPI dobrze ci nie działa z MMC/SD, bo masz źle skonfigurowany ten fragment w pliku bibliotek AVR-Dos. ' THIS IS AN INCLUDE FILE ' DO NOT COMPILE $nocompile '---------------------------------------... ' Config_MMC.BAS ' Config File for MMC Flash Cards Driver ' (c) 2003-2005 , MCS Electronics...
Tak się objawiają uszkodzone czujniki. Sprawdź go jeszcze raz w bascomie. Pozatym masz jakieś dziwne te delay'e czemu używasz funkcji owire_delay przecież masz _delay_ms? Trochę wróżąc z kodu wnioskuje że funkcja delay odmierza 0,25us * przekazany argument. Piszesz w komenarzach że niby ta pętla for + funkcja poniżej jej trwa 470ms. Jak nie przestawiałeś...
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...
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);...
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...
Mam jeszcze jedno pytanie Dlaczego nie można użyć innego pinu jako końcówki sterującej SS dla układu ENC28J60 ? Możesz użyć innego piny, zmodyfikuj tą linie: [syntax=basic4gl] Enc28j60_cs Alias Portb.0[/syntax] Jeżeli do sterowania wybierzesz pin inny niż PB4, to PB4 (/SS) i tak musisz ustawić jako wyjście. Dla przypomnienia [url=http://www.elektroda.pl/rtvforum/vi...
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 =...
Próbowałem tak jak mówiłeś z tym kodem: [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> // Definicje LED #define LED0 PB4 #define LED1 PB5 #define LED2 PB6 #define LED3 PB7 #define LED4 PE3 #define LED5 PE4 #define LED6 PE5 #define LED7 PD0 void main(void) { //int ile=5; int i=0; // ########### I/O ###########...
bascom portb atmega162 portb attiny26 portb
tda2822 mostek instrukcje panasonic radio indesit instrukcja pralka
storm silnik alternator renault premium
Które koło nie rusza się podczas skrętu w lewo? Histereza w kotle Vaillant ecoTEC exclusive - ustawienia i znaczenie