Mozliwe. Ale skoro mam ustawiony PORTD (piny danych wysylanych do wyswietlacza) ustawione na OUT, to jak czytac stany wymuszone na nich przez LCD (status)? Uzywam CodevisionAVR. A co do petli... stosuje je bo w katalogu sa podane minimalne odstepy czasowe miedzy wyzwalaniem odpowiednich stanow na pinach. Wynosza one srednio min. 80ns wiec musialem dac...
Przy przełączaniu przetwornika miedzy kanałami dobrze jest odczekać chwilke czasu po zmianie kanału. Wynika to z zaklocen wystepujacych podczas przelaczania multipleksera: jesli przy nowym pomiarze biezacy kanal zostal zmieniony, to przez pewien czas na wejsciu przetwornika wystepuja stany nieustalone. Mozna zrezygnowac z tego opoznienia, jesli pomiary...
Witam, dziękuję za odpowiedź i chęć do pomocy ale temat kontynuowałem już na innym forum i rozwiązałem to w trochę inny sposób. Faktycznie brak gotowca zmusił mnie do tego żeby trochę posiedzieć i popróbować samemu. I tak: - z kodu usunąłem część odpowiedzialną za autozamykanie - z racji braku krańcówek wykasowałem obsługę wykrywania obniżonego napięcia...
Wyświetlacz jest sprawny. Dzisiaj włożyłem go w układ innego kolegi (woltomierz chyba) i wyświetlacz działał. Avcc nie miałem podłączonego do plusa ale chwile temu to zrobiłem i cisza. Czarne kwadraciki do góry ekranu się pojawiają od samego początku. Podłączenie jest prawidłowe R/W - GND i DB0 - DB3 też masa, a piny ustalane w programie DB4 - DB7 są...
Witam, ...Na samym początku programu mam miganie 100x50ms - stad wiem, czy program wisi czy nie. ... jestes w stanie to zauwazyc to dla ludzkiego oka swiecenie ciagle no i masz opoznienie rzedu 5s na starcie. Wlasnie od tego masz konfiguracje procesora fusebits, ustawiasz odpowiednie poziomy i opoznienia przy starcie, czemu nie dasz kondensatora raczej...
Witam. Pewnie zabrzmi to głupio aczkolwiek lubię się upewnić czy pewne rzeczy robię dobrze czy też źle. Jako iż nie dysponuję w tym momencie pod ręką programatorem to nawet nie mogę sprawdzić czy dobrze piszę czy nie. Rozchodzi się o zmianę programu napisanego na Atmegę16 tak aby pasował do Atmegi8. Jest to nadajnik podczerwieni o określonej częstotliwości...
ojoj panowie elektronicy:P Mam podobny problem z AT90S8535 i programatorem STK200/300. Czyta pamięć, resetuje ale nie chce programować. Może to sprawa konfiguracji Bascoma? po pierwsze - ustawiles opoznienie w konfiguracji? (bascom/programator/delay - tak z 300 ustaw, do 1500 moze dojedziesz) po drugie - wpisz na sztywno $regfile="m8535.dat" zaraz na...
po namysłach i szukaniach wywnioskowałem że powinno być tak : .................. On Timer0 Timer0_int Enable Interrupts Timer0 = 131 Licznik = 0 Wartosc = 0 Timer1 = 0 Do If Timer1 = 1 Then Timer1 = 0 Enable Timer0 Waitus 800 End If Loop Timer0_int: Counter0 = Counter0 + 131 'przerwanie co 1ms Incr Licznik If Licznik = 50 Then '50ms Toggle Portb.1...
Holy, pracuje na 16MHz. Wszystko dziala, kiedy z funkcji LCD_Send() wywale dwa wywolania funkcji LCD_Busy() i zmienie "nop'y" na delay(1) [opoznienie o jedna milisekunde].
Co do opóźnień - myśle że wprzypadku LCD nie powinno to mieć większego znaczenia. przy takim podejsciu nigdy go nie uruchomiesz. po to sa gotowe funkcje z naglowka delay.h (ktory zreszta dolaczasz, a nie uzywasz), zeby je wykorzystac i nie zastanawiac sie nad tym, czy opoznienie bedzie dokladne czy nie. skoro poprawiles kod, to moze wrzuc poprawiony?...
komendy mozna zastapic tokenami, ktore sa indeksami do tablicy zawierajacej adres funkcji realizujacej dana komende. Czyli pobierasz token (np. 8-bitowy, jesli komend jest mniej niz 256), odczytujesz adres funkcji z tablicy pod tym indeksem i ja wywolujesz. Dzieki temu nic nie musisz sprawdzac, a kazda komenda jest wykonywana z takim samym opoznieniem....
Witam, chciałbym zainicjalizować wyświetlacz LCD, pisząc program w asemblerze, na podstawie ogólnodostępnego schematu blokowego w internecie napisałem program, który niestety nie działa. Czy mógłby mi ktoś pomóc znaleźć błąd?(RS-> C0, E -> C1, RW -> GND, bity odpowiedzialne za wysyłanie danych są podłączone do portu D) [syntax=Bascom].include "m8def.inc"...
Problem dotyczy wysyłania danych przez USART z atmegi8 do PC. Mianowicie poprawnie wysylane jest tylko kilkanascie pierwszych bajtow. W symulacji w tym momencie wyskakuje błąd "Stack Overflow at 0x0068" i "Excessive stack overflow, stop sim". Co mam zrobić? Podprogram realizujący wysyłanie bajtu przez USART: rs232: ldi licznik, 0x09 cbi PORTD, 1...
Witam, mam problem z poniższym programem,który jest częścią większego kodu. Chce aby wejść w aplikacje, konieczne bylobyby wcisniecie odpowiednio w sekwencji :3 razy przycisk 1, 2 razy przycisk 2. Po wpisaniu tej sekwencji program ma przejść do dalszych instrukcji w mainie. Jesli kolejnosc sekwencji zostanie pomylona program wraca do poczatku wpisywania....
Witam. Nie pisałbym tego postu gdyby wszystko było w porządku ale niestety nie jest. W czym problem : A wiec, posiadam ATmega8 na 8Mhz wewnętrznym oscylatorze uisp -dprog=stk200 --erase --upload if=program.hex --verify --wr_fuse_l=0xe4 oraz czujnik DS18B20 podpięty pod PC2, linia danych podpięta przez rezystor 4.7k do Vcc, zasilanie pasożytnicze, (...
Mam problem z wywołaniem procedury Opoznienie z petli głównej programu. Problem polega na tym ze po wykonaniu procedury program nie wraca w miejsce jej wywołania (instrukcja "ret") tylko idzie na początek programu (".CSEG."). Z czego to wynika? Jak się tego pozbyć by normalnie wywoływać procedury? Poniżej załączam program: .include "m8def.inc"...
Można sprzętowo zwiększyć wartość kondensatora przy fotorezystorze, albo programowo: 1. Dodać stałą oraz jedną zmienną globalną na początku softu: #define OPOZNIENIE 15 double jafil; 2. Zamienić linie: adcval = ADC; // odczyt wyniku z ADC na te dwie linie: jafil = (OPOZNIENIE * jafil + ADC) / (OPOZNIENIE+1); // filtr wartosci z ADC adcval...
Korzystam z internetu w czytelni dlatego jestem tu tylko między 12 a 13 Nie jest moim celem podanie Tobie na tacy końcowego produktu tylko nakierowanie na inny tor myślenia.Celowo podaję kod w wersji skróconej abyś sam mógł wykazać niedoskonałości programu. Jak wyżej wykazałeś brak jest opóżnienia w starcie silnika. Jeśli rozumiesz mój program to teraz...
Witam, jestem początkujący jeżeli chodzi o programowanie mikrokontrolerów, więc poniższy kod nie jest przepiękny. Proszę o poprawę... Główny problem: układzik jest to dalmierz ultradźwiękowy uzyskujący spory zasięg. Jednak by mógł też mierzyć odległość przedmiotów blisko umieszczonych muszę przełączać próg komparatora atmegi. Robię to za pomocą portu...
Witam, Zrobiłem układ(schemat poniżej), gdy układ zasilam z 2,5V wszystko działa dobrze, gdy napięcie jest wyższe od 2,8V(np. 3V) działa przez chwile około 2-5sekund i się zawiesza - nie odbiera już danych, aby układ ponownie zaczął działać muszę go ponownie uruchomić lub zresetować mikrokontroler. Czy to ma coś wspólnego z Brown-Out Detection? - mi...
Tryb 4-ro bitowy włączasz przesyłając komendę 4-ro bitową do LCD, także wcale nie musisz mieć tych 8 linii danych ;) Jak będę miał możliwość, to wkleję Ci kod :] Pozdrawiam Oto i obiecany kod :] .include "m16def.inc" .equ RS = PB4 .equ E = PB3 .equ DB4 = PB2 .equ DB5 = PB1 .equ DB6 = PB0 .equ DB7 = PA0 ;tutaj beda procedury niezbedne do obslugi...
Witam. W programie "AVR delay loop generator" wygenerowalem funkcje opoznienia dla procka ATmega8 przy zalozeniach: kwarc 8MHz, opoznienie 0,002s = 2ms i program wygenerowal mi kod (podaje przeksztalcony juz do funkcji w AVR studio) ; ============================= ; delay loop generator ; 16000 cycles: ; ----------------------------- ; delaying...
Nie wiem, czy to urok avr-gcc, czy samych mikrokontrolerów, ale generalnie źle one znoszą pętle bezpośrednio zagnieżdżone w głównej pętli programu (też kiedyś miałem tego typu przygody). Zrób sobie oddzielną funkcję, np. coś w tym stylu: #define F_CPU 4000000L #include <avr/io.h> #include <util/delay.h> void opoznienie(unsigned short...
witam ponownie zrobiłem tak aby program w timerze był jak najkrótszy wszystko fajnie działa tylko że jak nastawiam godziny lub minuty to tylko do 8 później się zacina i nie da się nic zrobić. Czy mógłby ktoś zerknąć na mój kod i powiedzieć co ma źle. $regfile = "m8def.dat" 'Dyrektyway dla kompilatora. $crystal = 4000000 Config Portb.0 = Input...
jedyne, co to możesz zrobić to "szybkie miganie" diodami portX.X = 1 waitus opoznienie portX.X = 0 X oczywiście zamień na odpowiednie wartości switchami zmieniaj długość opóźnienia if pinX.X = 0 then opuznienie = opoznienie - X end if // zwiększa jasność if pinX.X = 0 then opuznienie = opoznienie + X end if //zmniejsza jasność //ten kod działa, jak...
Z tym delay to mała literówka niezauważyłem :D poprawiłem i wyglada to teraz tak: ... while(1) { PORTD = 0x00; PORTC = 0x00; int licznik = 0; int czas = 10;//czas do kolejnego sparawdzenie stanu PINB UWAGA! zmien jeszcze delay int opoznienie = 18;// opoznienie w sekundach int dzielna = 1000; int wynik; int oczekiwanie; if(PINB = 0x01)...
Hmm, czy takie coś by się sprawdziło? :D $crystal 1000000 dim 5min as byte Config Timer1 = Timer, Prescale = 1024 On Timer1 Opoznienie On Interrupts Enable Timer1 Load Timer1 = 65535 Opoznienie Load Timer1 = 65535 incr 5min If 5min = 5 Then *********** 5min = 0 End If Return
Witam. Mam problem z kompilacja programu. Posiadam gotowego maina i biblioteki tylko nie wiem czy to wszystko dobrze robie... Jest to program do wytrawiarki który steruje grzałka i wyświetlaczem LCD. Chciałbym go nieco przerobic. Tak wyglada main:
Witajcie, próbuję odpalić dwie ATmega8 tak, by obsługiwały moduł radiowy NRF24L01. SPI mi działa, wiec dodałem te moduły. Jedna atmega z modułem ma nadawać dane, druga z modułem je odbiera. Niestety tak się nie dzieje... pisałem to na podstawie tej strony: Kod nadajnika: [syntax=c]/* * main.c * * Created on: 3 sie 2016 * Author: Mateusz */ #include...
Aha, rozumiem... Przed funkcja LCD_Write() wylaczyc ADC, a po niej wlaczyc spowrotem... Sproboje tak zrobic... Co prawda wlasnie rozwiazalem problem z tym opoznieniem [chodzilo wlasnie o przerwania], ale mam inny problem, opisany w okolicznym poscie... I to mogloby byc to... Juz doszedlem: przerwania zabieraly zbyt duzo czasu, dlatego wszystko tak zwalnialo....
Załączam funkcje do obsługi tego scalaka: //obsługa IIC //Opoznienie void delay (void) { int delay; for (delay = 0; delay < 10; delay++); }//end (delay) //start void start (void) { SCL = 1; delay (); SDA = 0; delay (); SCL = 0; delay (); }//end(start) //stop void stop (void) { SDA = 0; delay (); SCL = 1; delay (); SDA = 1; }//end(stop) //potwierdzenie...
Z góry przepraszam za zamieszczenie całego programu - i tak jest okrojony do minimum - ale gotowy do skompilowania (ICCAVR) Chciałem uniknąć pytań z cyklu a co masz jeszcze w programie - może się gryzie... Problem dotyczy wysyłania danych za pomocą interfejsu RS232 w procesorze AT Mega8 ( pewnie i innych ale ja wałkuje akurat ten ) Nie moge dojść dlaczego...
Jeżeli losowe i bascom to trzeba zrobić pętle od zera do zadanej a w środku wstawić waitms 1. Np tak: dim opoznienie as byte 'moze byc inne dim petla_pomoc as byte .... opozninie=rnd(60) for petla_pomoc=0 to opozninie waitus 1 next petla_pomoc ....
Juz dawno z tych funkcji nie korzystalem ale z tego co pamietam to maksymalny parametr dla delayms wynosi: 255/Fosc czyli mozesz tam maksymalnie wprowadzic jednorazowo opoznienie 256 ms. Zeby odmierzyc 1s musisz zrobis oponienie np delayms(100) i umiescic w petli for *10. Mam nadzieje ze w niczym Cie nie okłamałem. Pozdrawiam
joy_pl: jedyna taka tabele jaka mi sie kojarzy, to moze byc dotyczaca UART, gdzie widniala czestotliwosc rezonatora, predkosc transmisji i blad procentowy. Oprocz zwiekszenia opoznienia ja bym jeszcze dodal drugie opoznienie pomiedzy pomiarami a nie tylko na koncu petli.
przepraszam //Najpierw musisz ustawić odpowiednie parametry //np tak Kod: //unsigned char odebrane; //zmienna globalna - definujemy ja przed wszyskimi funkcjami unsigned - oznacza ze przyjmuje warotsc od 0 do 255 unsigned char zmienna; #include <avr\sfr_defs.h> //pozwala sterowac bitami code::blocks #include <avr\io.h> //wejscia_wyjscia...
Łoo wlasnie policzylem ze jezeli z tych przerwan co 1ms chcesz odmierzyc minute to przy 150 taktach na obsluge przerwania (okolo 67 zajmuje samo wwolanie bez obliczen w C) to opoznienie masz okolo 9 sekund. Musisz koniecznie zwiekszyc prescaller albo liczyc na timerze 1.
Witam serdecznie. Zrobilem prosty wlacznik pompy na atmega8 temperatura mierzona na 1-wire, wyswietlacz LCD do wskazywania temperatury W sumie bardzo prosty ukladzik jak temperatura wieksza od TON to zalancza pompke a jak mniejsza od TOFF to wylancza. Elementem wykonawczym sa dwa przekazniki sterowane przez BUZ11. Zasilanie ukladu jest zrobione ze starej...
Witam, Ostatnio zacząłem sobie pisać funkcje służące komunikacji przez 1 wire. Nie wiem dlaczego, ale nie działa mi odczyt :/ Staram się odczytać temperaturę od DS18B20. Dodam, że próbowałem już różnych timingów przy odczycie, ale nic to nie dało. Oto kod: void onewire_init( void) { //ustawienie lini na "0" cbi( onewire_port,...
witam, zaprojektowałem mój pierwszy układzik do sprawdzania temperatury i wilgotności oparty na atgmega8 (zew. kwarc 8mhz) i czujnik firmy sensirion zlutowałem 4 dolne wyjścia, piszę to gdyż mój czujnik ma 5 wyjść(jak na zdjęciu) a nie 4 jak w dokumentacji. może tu leży problem.. problem polega na tym, że po przerobieniu /***************************************...
Dorzuczając się tu. Chodzi mi o jak nakrótsze opoznienie (delay) jaki można uzyskać w Atmega16. Skoro np mam 1MHz to najkrocej powinno być 1us. Jak ją otrzymac? prosiłbym o kod.
Freddie, ok wiem, ze to zależy od czasu działania przerwania uartu. Przeciez z tego co napisałem łatwo wywnioskować, że przerwanie od uartu jesli nastąpi miedzy przerwaniami od pwm'a to wymaga szybkosci takiej aby zakończyło się przed następnym wywołaniem przerwania od timera. ale opoznienie miedzy bajtami musze zrobić jakoś inaczej. Pomożecie? a Co...
Patrzylem na swoj program pilota uniwersalnego w którym stosuje power down i tam oprocz ustawienia wybudzania ma jeszcze ustawione aktywne przerwanie zewnetrzne i oczywiscie napisaną obsluge przerwania. Dodano po 2 moze zamiast zerowac pojedynczy bit w MCUCR wpisz cała wartosc do tego rejestru, gdyz nie widze gdzie ustawiasz ISC11, a jezeli zakladasz...
Zmien owire_delay na funkcje inline - inaczej generowane krotkie opoznienia rzedu 1us sa super niedokladne (wez pod uwage, ze musisz wykonac mnowstwo instrukcji wywolujacych funkcje). Po rozpoczeciu konwersji musisz miec opoznienie (to co jest zakomentowane), inaczej uklad nie zdazy podac wynikow. Podaje wtedy stala wartosc (do poolingu), stad moze...
No to napisz sobie program na pomiar z dwoch zrodel i sam sie przekonaj, Oczywiscie jak dasz długi czas konwersji to bład bedzie minimalny, ale np u mnie przy min czasie konwersji mierzone napiecie 2.6v pokazywalo 1.4 po dodaniu opoznienia ok 30uS zaczelo wskazywac 2.6V. No cóż tez jestem tym zaskoczony bo kazde opoznienie dla mnie to wzrost poboru...
Tu masz procedurki. pp10,pp11,pp12,pp13 deklaracja pinów szyny danych RSLCD PIN RS W LCD ENABLE PIN E ALCDR CBI RSLCD LD R0,R16 ALCDCBI PP10 JNB R0,0 SBI PP10 CBI PP11 JNB R0,1 SBI PP11 CBI PP12 JNB R0,2 SBI PP12 CBI PP13 JNB R0,3 SBI PP13 INCLUDE LCD20 LD R8,Y+KY JB R8,1 JR W41 SBI ENABLE1 CALL ALRET CALL ALRET CBI ENABLE1 JB R8,2 JR DELAY W41SBI ENABLE...
Pomoze ktos w skompilowaniu tego programu ?? przepisalem ten program z Nowego Elektronik i chcialbym zaprogramowac nim procesor atmega8 ale nie wiem jak to zrobic. [syntax=basic4gl] 'Nowy Elektronik 701-k 'Licznik Impulsów ver. 1.0 'BASCOM-AVR IDE Verion : 1.11.8.1 'Compiler: Version 1.11.8.1 $regfile ="m8def.dat" $crystal = 12000000 Dim Impulsy As...
Pisanie na kilkanaście minut i zobacz że lepiej to wygląda niż twoja sieczka. Do tego możesz teraz bardzo łatwo dodawać sobie kolejne efekty. Jak nie zadziała to sobie popraw :-) [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Portd.0 = Input Config Portd.1 = Input Config Portd.2 = Input Config Portd.3 = Input Config Portc = Output...
W ASM rozwiązanie Twojego problemu wygląda następująco: [syntax=text] ;DDS DEMO by Bobeer 2012 ;MCU - ATTINY13A ;XTAL - no ;EXT OSC 16,384kHz startup 14CK+64ms BOD=DISABLE CKDIV8=OFF ;minimalna rozdzielczość kroku to 10Hz/256 (0,0390625Hz) ;minimalny "okrągły" krok 10Hz ;maxymalna czestotliwosc 327,68kHz ;regulacja pwm 8bit 0=0V 255=VDD-1bit ;-------------program...
Witam, Używam przetwornika A/C w atmega'e do odczytu wartości z różnych czujników tzn. fotorezystor(ADC2), analogowy przetwornik temperatury(ADC0) i mikrofon pojemnościowy(ADC3). Problem sprawia mikrofon którego wartość jest skorelowana z fotorezystorem. Pomiar woltomierzem pokazuje prawidłowe wartości (tzn. napięcie zmienia się w zależności od glośności...
Tak jak pisałem jest źle napisana logika w Twoim programie, nie może być ELSE IF if a potem ELSE. Poprostu nie wykonuja się kroki silnika. Dodatkowo jeśli kroków będzie więcej jak 100 to będzie przekroczenie czasu 300ms pomiaru timerem1. Dlatego pisałem że jeden pomiar, jedno wykonanie kroków silnikiem i dopiero ponowne wykonanie pomiaru. Powinno być...
Witam. Niedawno rozpocząłem swoją przygodę z Atmegą8. Chciałem sprawdzić jak działa interfejs TWI. Na podstawie książki pana Cezarego Klimasza zakupiłem układ 24c16wp i napisałem program. Niestety program zamiast wyświetlać mi w terminalu liczby od 255 do 0 wyświetla bliżej nieokreślone sekwencje znaków. Czy mógłby mi ktoś pomóc znaleźć błąd w moim...
Witam, Chciałem zrobić opóźnienia w programie dla Atmega8. Wykorzystałem przerwania, ale przy symulacji programu w AVR Studio okazuje się że program po około 260 mikro sekundach resetuje się(wraca do funkcji main() ). Nie jet to spowodowane raczej watchdogiem bo jest on wyłączony. Czy ktoś potrafi mi powiedzieć dlaczego tak się dzieje? Aha, oczywiście...
czesc znow :D nie mialam wczesniej czasu, ale wreszcie sie udalo i podpielam zewn kwarc. Teraz mam inny problem ;] Skorzystalam z tego programu powyzej, ale wyswietlacz w ogole nie reaguje. Wydaje mi sie, ze mam zle ustawione opoznienie. Wyczytalam z forum, ze mozna wyliczyc to z djnz, ale nie wiem jak to napisac w C. Moze mi ktos napisac jak to obliczyc...
Witam serdecznie, mam problem który polega na dostosowaniu programu działającego na AT90S8535P do Atmega8. Dokładniej problem polega na tym że Atmega8 nie posiada wyjść tosc1/2. Poradzono mi aby sam uC pracowal na wewn. układzie RC a zegar na zewnetrznym oscylatorze. Szukałem info na temat zmiany konfiguracji ale nie mogę wymyśleć co zmienic w kodzie...
hej. do dziś myślałem ze typ zmiennej int przechowuje wartości od -32768 do 32767. a tu nagle... napisałem prosty programik na atmega8. nie robi nic tylko powiększa wartość zmiennej typu int o 1. w miedzy czsie dalem male opoznienie i wyswietlenie liczby na lcd, coby dalo sie wszystko zaobserwowac. odpala sie proc. w pętli głównej zmienna sie inkrementuje,...
Witam, Ostatnio również ja, skuszony możliwościami układów rfm12, postanowiłem zakupić dwa moduły tego typu (433 MHz). Śledząc ten wątek natknąłem się na kod użytkownika avatar , postanowiłem wykorzystać go więc w mojej aplikacji. Niestety, po podłączeniu modułów do procesorów nie zachodzi żadna transmisja. Po pewnym czasie nierównej walki z w/w nasunęło...
Nie napisałeś jaki to procesor. Przykładowo dla Atmega8/Atmega32 wystarczy gdzieś napisać UCSRB.TXEN = 0 Dla Mega328P UCSR0B.TXEN0 = 0 Mowa o Atmega16. Instrukcja UCSRB.TXEN = 0 rzeczywiście działa ale tylko do czasu, kiedy nie połączę się z drugą Atmegą. Tak wygląda początek programu dla Atmega16 (odbiornik): Dodano po 2 Znalazłem jeszcze taką informację:...
Witam. Mam problem z inicjalizacją wyświetlacza LCD w trybie 8 bitowym. Jeżeli ktoś czuje się dobrze z asemblera i ma ochotę pomóc mi znaleźć problem to będe bardzo wdzięczny. Układ pracuje z kwarcem 16MHz i zasilany jest napięciem 5V .include "m128def.inc" ;KONFIGURACJA LINII ATMEGA128 .EQUK_ST_LCD_DB=DDRC;Kierunek portu STEROWANIA WYSWIETLACZEM...
No i następnej sprawy nie rozumiem. Dlaczego ten licznik liczy do 99999 a nie "po bożemu" do 65535? Przynajmniej tak się wyświetla. I z 1000 przy decr "zmniejsza" się na 9999? 'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 30V 'set i reset zastosowałem w celach poglądowych-...
No, prace nieco "meandrują". Ponieważ normalny przyniesiony z firmy sterownik musiałem zamontować w firmowym ploterze- bo kolega skończył część mechaniczną- to zacząłem robić sterowanie do małego "doświadczalnego" silnika sterowanego przez L6219 na ATMega168. Oczywiście "po bożemu" w przerwaniu. To się gdzieś pęta na EL. Algorytm podany przez whitetom...
'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćkrokowe, zasilanie 30V $regfile "m168def.dat" $crystal = 4915200 '********* Konfiguracja wyświetlacza ********* $lib "Lcd4busy.lib" Const _lcdport = Portd Const _lcdddr = Ddrd Const _lcdin = Pind Const _lcd_e = 1 Const...
Zrobiłem taki programik: 'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 30V 'set i reset zastosowałem w celach poglądowych- można- a nawet należy zastąpić to np.PortB=&B00001100 itp. $regfile "m8def.dat" $crystal = 4915200 Config Lcd = 16 * 2 Config Lcdpin =...
Witam Mam za zadanie wykonać sterowanie fazowe żarówki. Wykorzystuje układ Atmega8 oraz Bascom 1.1.9.5. Poniżej przedstawiam kod: Enable Interrupts Enable Int0 Enable Timer1 Config Int0 = Falling Config Timer1 = Timer , Prescale = 1 On Int0 Przerwanie On Timer1 Opoznienie Load Timer1 6000 Do Loop : End Przerwanie: Start Timer1 Return Opoznienie:...
Cześć Mam prośbę do osób, które 'pracowały' z tym układem Na podstawie pdf-a stworzyłem ramkę do obsługi tego układu oto ona uC do max132>>>0xC2 convert Vin and send Status register (50Hz) wait for end of conversion uC do max132>>>0x44 send Output Register 1 uC do max132>>>0x40 send Output Register 0 uC do max132>>>0x42 send Status register Czy jest...
Mam ATMega8 i podłączony do niego wyświetlacz LCD (8 znaków, 1 linia). Po wpisaniu poniżeszgo programu nie ma żadnej konuikacji z LCD. Dane do LCD wysyłane są po 4 bity. Używam kompilatora winavr. Gdzie zrobiłem błąd?? plik lcd01.h #ifndef LCD_H #define LCD_H #include <avr/io.h> #include <stdlib.h> #include "avrlibdefs.h" #include...
Witam przerobiłem serwomechanizm Tower Pro MG995 zgodnie z tym filmem. A mianowicie: - Zdjąłem ząbek z zębatki, oraz blokade potencjometru, - Odciąłem kabelki od potencjometru (nie wiem dlaczego) i dolutowałem 2 rezystory 2k2, - Elektronikę zostawiłem. Przed przerobieniem sterowałem nim wg. zamieszczonego obrazka Steruję nimi w ten sposób na atmega8:...