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
Sprawdziłem, jednak chodzi o DDRB, który jest adres przed PORTB w rejestrze, a ktoś zamiast pisać DDRB woli PORTB-1
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);...
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...
Witam Potrzebuje pilnej pomocy z programowaniem robota wielozadaniowego. Robot porusza się za pomocą dwóch gasiennic każda z nich napędzana jest silnikiem od wycieraczek samochodowych. Połączone są za pomocą H- Bridge Robot posiada dwa ramiona każde z nich ma 8 servo mechanizmów. wybrany mikroprocesor to ATmega 1284P. Potrzebuje pomocy z zaprogramowaniem...
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....
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....
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)...
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...
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, 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! 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",...
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...
Witam, Mam jeszcze taki problem że licznik impulsów na AVRze nie działa. zauważyłem jednak że wszystko się liczy gdy zamiast impulsów +5V dochodzą impulsy zwarcia do masy czyli daję na PINB.0 sygnał GND i już tam się liczy. Co mam zmienić w programie by reagował nie na masę tylko na +5V? :( Pozdrawiam oto mój kod: '---------------------------------------...
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, 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...
[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...
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 <<...
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 {...
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...
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 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...
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...
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...
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...
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. 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....
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))...
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...
Raczej nie zaczęło. Prawidłowo działa odliczanie czasu w oparciu o zegar PCF8583 - co minutę miga dioda podprogramu Pomiar. I na tym się kończy sprawa jeśli chodzi o SD, nie dopisuje do pliku, nie tworzy nowego, reszta działa poprawnie - wyświetlanie czasu i temperatury na LCD. Plik Config_MMC.bas jest od Kolegi Duch '---------------------------------------...
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 /***************************************...
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 ###########...
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()...
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ą...
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 Zrobiłem sobie taki PWM w oparciu o ADC [syntax=c] #include <avr/io.h> #include <util/delay.h> //definicja ADCIN (wejście ADC) #define ADCIN PF0 int main(int argc, char **argv) { int i=0; DDRB = 0b11111111; PORTB = 0b11111111; DDRF = 0b11111111; DDRF &=~(1<<ADCIN); /* TCCR0 |= (1<<WGM01); // Inicjalizacja PWM TCCR0...
Używam ATmega128 // bootloader [syntax=c] #define set_bit(PORT, BITNUM) ((PORT) |= (1<<(BITNUM))) #define clear_bit(PORT, BITNUM) ((PORT) &= ~(1<<(BITNUM))) .... #define LED PE5 // #define LED_DDR DDRE #define LED_PORT PORTE #define BOOT_SW PB4 // #define BOOT_SW_PORTPORTB #define BOOT_SW_DDR DDRB #define BOOT_SW_PIN PINB ... clear_bit(BOOT_SW_DDR,BOOT_SW);...
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ę...
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. Chciałbym prosić o pomoc w uporaniu się z problemem. Posiadam kod, który świeci "na sucho" Diodą D0, Diodą D1 po wciśnięciu klawisza na klawiaturze (zablokowane zworką na jedną kolumnę), Diodą D2 po wciśnięciu drugiego klawisza i diodą D3 po wciśnięciu 2 klawiszy na raz. Zależałoby mi na dodaniu linijki kodu, który przy pomocy 3 klawisza zaświeci...
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 ,...
W Bascom'ie jest biblioteka mmc.lib i nigdzie nie jest opisana jej konfiguracja jak i jej sposób użycia. Czy wiecie jak wysyłać i odbierać bajty przy użyciu tej biblioteki? Dodano po 3 Dokopałem się do czegoś takiego i co dalej....... $regfile = "m128def.dat" $crystal = 14745600 $baud = 115200 $hwstack = 150 'wartosc stosu $swstack = 150 'wartosc...
No i rzeczywiście w EP jest ale przykłady są w C. A na tej drugiej stronce programik nie chce się do końca skompilować i generuje błędy. <załamka> Dodano po 1 No i mam to: '---------------------------------------... ' Config_MMC.BAS ' Config File for MMC Flash Cards Driver ' (c) 2003-2005 , MCS Electronics...
Witam. Robię układ oparty na karcie SD, mikroprocesorze ATMEGA32. Program napisany w Bascomie, użyte zostały biblioteki AVR-DOS. MA on odtwarzać pliki WAV z karty, do testów używam tego programu znalezionego w internecie. 'dźwięk 32khz / 8 bit / mono / wav 'do każdego nagranego pliku dodać z przodu pliku 10% czasu utworu ciszy potrzebej na załadowanie...
Witam serdecznie wszystkich w nowym roku. Mam problem z bootloaderm napisanym w GCC. Zasada jego działania jest następująca: po resecie przez sekundę ma skanować port szeregowy i jeśli nadejdzie znak "0xaa" to rozpoczyna odbieranie paczek po 256bajtów i zapisuje je do FLASH'u. Kod źródłowy jest następujący: #include <avr/io.h> #include <avr/boot.h>...
Udało się cześciowo rozwiązać problem. Ale nadal RTL się nie inicjuje. Kod biorę stąd: #define CR 0x00 #define PSTART 0x01 #define PAR0 0x01 #define CR9346 0x01 #define PSTOP 0x02 #define BNRY 0x03 #define TSR 0x04 #define TPSR 0x04 #define TBCR0 0x05 #define NCR 0x05 #define TBCR1 0x06 #define ISR 0x07 #define CURR 0x07 #define RSAR0 0x08 #define CRDA0...
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...
Nie mogę poradzić sobie z uruchomieniem tego wyświetlacza: .EQUK_LCD_DANE = DDRF ;kierunek portu wyświetlacza .EQUI_LCD_DANE = PINF ;wejście portu wyświetlacza .EQUO_LCD_DANE = PORTF ;wyjście portu wyświetlacza .EQU DB0 = 0 .EQUK_LCD_STER = DDRB ;kierunek portu sterowania wyświetlacza .EQUI_LCD_STER = PINB ;wejście portu sterowania wyświetlacza .EQUO_LCD_STER...
Witam Postanowiłem pobawić się trochę układem DS1305. Ogólnie układ wydaje się działać, jednak kiedy bliżej przyjrzeć się temu w jaki sposób zliczany jest czas pojawia się pewne dziwne zjawisko. Mianowicie co jakiś (co 10 sekund/minut) czas zamiast inkrementacji sekund/minut o 1 inkrementują się one o 7 np. z 25 na 32. Poza tym wszystko wydaje się być...
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...
z gory zaznaczam ze to moj pierwszy program! mam atmege 128 i wysw. 7segm. i za zadanie mam jakikolwiek prosty zegarek/stoper napisac cos tam napisalam ale niestety zle mi wyswietla tzn wgl nie realizuje kodu teoretycznie algorytm jest dobrze napisany, ale jak zmieniam liczby tutaj : [syntax=c]TCCR0 |= (1<<WGM01); //tryb CTC OCR0 = 39; //ustawienie...
bascom portb atmega162 portb attiny26 portb
odrzuci reklamacja ekran regulator silnik impulsowy znaleziono tablice
Odblokowanie hamulca ręcznego w Citroen C6 Soundcraft Ui24R preamp noise, pops, crackles—component-level repair guide