Do autora - przyjrzyj się [syntax=vbnet]Config Portd.5 = Output : Dc_wlacz Alias Portd.5 Config Portd.1 = Input : S12_wolniej Alias Portd.1 Config Portd.2 = Input : S11_szybc Alias Portd.2 Config Pina.0 = Output : Kier_lewo Alias Pina.0 Config Pina.1 = Output : Kier_prawo Alias Pina.1 Config Pina.4 = Input : S10_start Alias Pina.4 Config Pina.5 = Input...
Proszę, może to Cię zachęci do przeczytania reszty we własnym zakresie. Program "miga" nośną 38kHz co 1ms ;) http://obrazki.elektroda.pl/5631733100_1... [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1 Compare2...
Grala1 - Nie wiem czy ta wersja spełni oczekiwania : '$prog &HFF , &HE1 , &HD9 , &H00 ' Fusebity fabryczne !!! $sim ' dyrektywa opuszczania zwłoki (usunąć ten wiersz przy wgrywaniu w chip) $regfile = "m8def.dat" ' dyrektywa kompilatora o rodzaju procka ATMega 8 $crystal = 16000000 ' określenie kwarca 16 MHz Config Pinb.1 = Output...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Tak sobie przypomniałem trochę i stan rejestru nie powinien być pobierany. Tylko od razu zapis bo SBR robi And że zmienna. Nie sprawdzałem co bascom tłumaczy pod komenda set Ale po mojemu to... Set trrc1b.7 Równa się asm SBR tccr1b , 0b10000000
Multimetr to Brymen BM837. Dodam że jak zamiast akumulatora podłączę żarówkę 12V/200W to wtedy prąd jest przekłamywany inaczej - im mniejszy prąd tym większy mnożnik jest potrzebny. Dla 500mA ADC=12 i mnożnik 41,6... ale dla 3A ADC=117 i mnożnik już 25,6... Przecież niby ACS712 odczytuje wartość prądu AC i DC...lecz tu przez PWM jest prostokąt z różnym...
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 '...
Racja. Napisałem sobie kod, ale nie mogę go nawet symulować w Bascomie, bo Bascom nie symuluje Timera2. Teraz właśnie ściągam AVR Studio 5 by móc w nim symulować. Kto wie kiedy zacznę w nim coś pisać. Chociaż doszedłem do tego jak ustawić to po bascomowemu: [syntax=basic4gl]Config Timer2 = Timer , Prescale = 256 , Async = Off , Compare B = Toggle ,...
Oto fragment kody ktory ustawial PWMa. Dodam ze testowalem na ATMEGa 16 w Bascomie 3 PWMy i wszystkie dzialaly. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8 Pwm1a=245; // zapisuje do PWMa A jaka wartosc i rozpoczyna on prace. Tak to mniej wiejce wyglada, dziwne ze u Ciebie nie cche ten PWM dzialac.
Witam Czy ktoś może mi powiedzieć gdzie jest błąd w kodzie zamieszczonym poniżej? W tym projekcie atmega ma sterować obrotami wentylatora (wolniej/szybciej) po naciśnięciu przycisku. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A...
Czesc Tak naprawde to wystarczy, żebyś skonfigurował timer1 jako pwm: Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down W tym momencie masz 2 pwm sterujesz w ten sposób: pwm1a=wartość od 0 do 255 pwm1b=wartość od 0 do 255 Podpinasz np. leda do portu gdzie jest opisane OC1A i drugiego gdzie jest OC1B...
witam czy te dwa procesory to sa dokladne odpowiedniki, to znaczy czy program napisany w bascom mozna wrzucic bez modyfikacji i w jeden i w drugi procesor, i drugie, a wzasadzie trzecie pytanie czym zaprogramowac Atmega8535 bo bascom i stk200/300 nie daje rady pozdrawiam
Witam serdecznie Sprawa dotyczy czysto PWM mam tak - informacyjnie podaje $crystal = 8000000 Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1024 obecnie działa jak przerywacz prawie - reguluje sobie jedną wartość np czas trwania impulsu a potrzebuje jeszcze czas między impulsami Prescale mam już 1024 i dalej się nie da a 8 MHz...
Chciałbym zrealizować sterowanie diodą led rgb. Atmega8535 ma w sumie 4 kanały PWM Na razie udało mi się wykorzystać tylko jeden kanał pwm z zegara t1. Ale sterowanie dioda rgb nie było dokładnie takie jak chciałem. Ogólnie chciałem zrobić tak aby móc wybrać kolor w standardzie rgb (czyli dla każdego segmentu wartość od 0 do 255). jednak uznałem, że...
Dobra to dam 10 k i zaraz napisze czy działa ;) ----------------------------------------... Sprawdziłem i działa na tej cewce 680µH bez rdzenia i przy napięciu zasilania 3.72 V generuje 5.07 v i więcej nie dało rady prawdopodobnie przyczyną jest cewka bez rdzenia. Poniżej zamieszczam aktualny kod programu $lib...
Witam! Na podstawie informacji zawartych w książce "Programowanie mikrokontrolerów w języku Bascom" jak i wiedzy, którą udało mi się przyswoić piszę proste programy. Ostatnio zacząłem się interesować PWM'em jako sterownikiem wentylatora lub regulatorem oświetlenia. Oto program: [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 Config Pinb.1...
Witam, Mam problem z programem na Atmege8a, mianowicie: Piszę program sterujący pracą silnika (za pomocą L293D) który dodatkowo będzie zliczał w czasie impuls od przerwań zewnętrznych i tu pojawia się problem: kiedy napisałem program obsługujący tylko pracę silnika, wszystko działa sprawnie, kiedy napisałem program zliczający impulsy w czasie, również...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam Piszę program w Bascomie na Atmega32 do sterowania ogrzewaniem w warsztacie i mam problem. Jest zegar RTC, zewnętrzny Ram, Timer, Menu i to wszystko działa bez zarzutu - dokładnie tak jak bym chciał. Chciałem dołożyć czujnik temperatury i wykorzystać do tego celu wejście ADC. Problem pojawia się w momencie jak w podmenu "Start_webasto" dodaję...
Pisałem ci na pierwszej stronie że da się to zrobić w Winampie . Też kiedyś się męczyłem z różnymi programami ale Winamp okazał się najlepszy . Rzeczywiście bardzo fajnie dało się przekonwertować pliki poprzez winampa. Miałem go na dysku a szukałem w necie nie wiadomo czego :D Nie zmienia to jednak faktu że przekonwertowane pliki także działają tylko...
[syntax=c]mam jeszcze pytanie czy ten kod może źle pracować z atmega 8a-pu [syntax=c]|Program "analizator widma akustycznego 20*2 - V2" kompilator bascom 1.11.9.0 | '|Autor: HUNTERHOUSE(Adam Kędzierski) i częciowo MANEKINEN(Paweł Kisielewski) | '| data: 02.08.2009 | '| | '| info: http://www.elektroda.pl/rtvforum/topic77... | '| www: http://diy.elektroda.eu/analizator-widma...
Jak sama nazwa wskazuje przy konfiguracji Timer1 masz compareA i compareB. Czyli masz dwa rejestry porowniania które zmieniaja odpowiednie nogi procesora czyli pwm dla tego tajmera są dwa A i B. Noga procka OC1a pierwszy PWM (kanał) i OC1B drugi. Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'regulacja...
TCCR1A=0 lub TCCR1A=TCCR1A AND &H3F i masz kontrolę nad pinem Portb.1(OC1A) Piotrek
Kolego patrzę na ten kod ze zgrozą, ale załadowałem do swojego Bascoma i trochę więcej zrozumiałem bo mozna sprawdzać referencje i skakać po kodzie. W przerwaniu co osiem taktów (nierealne) timer ma zliczać te twoje "niby" OCR. (Incr Licz_timera1 : If Licz_timera1 >= Ooo Then) Te OCR jest ładowane z tabeli gdzie najmniejsza wartość to 127 a najwieksza...
Miałem chwilę więc chciałem napisać szybko program na Aduino Mega2560, ale potem sobie przypomniałem, że tam mikroskopijny kwarc a błąd przy 16MHz dla 115200 jest za duży. Wziąłem więc Mega128 bo była wolna i pod ręką. Napisałem program w którym przez Charmatch odbieram string "1234567890" po odebraniu Entera. Żeby było uczciwie to jeszcze odpaliłem...
A nie lepiej tak ? Przykładowa konfiguracja timera1 w trybie CTC i przebiegiem na OC1a [syntax=basic4gl]Config Timer1 = timer, Prescale = 256, CLEAR TIMER = 1, Compare A = toggle, Compare B = disconnect [/syntax] Potem tylko zmieniać wartość rejestru Compare1a jakimiś przyciskami, pilotem, enkoderem etc. ps. Jak nie zadziała to poustawiać bity w rejestrach...
Hej, Dzielnik zmieniłem i jest przed diodą. Dodanie kondensatora C6 za diodą powodowało, że przy rozłączeniu zasilania mega nic nie zapisywała i zliczała od zera. Podobnie jak wpisanie polecenia RISING. Odlutowałem C6 i zmieniłem polecenie na FALLING. Zamieniłem dzielnik tak jak był na początku a więc 100K i 18K tak aby comparator wyzwalał się przy...
hmmm Przede wszystkim: Enable Interrupts On Timer0 Przerwanie Stop Watchdog Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256 'PWM=250Hz Load Timer0 = 195 To włączenie przerwania jest wstrętne w tym miejscu:P Co do wniosków... może spróbuj zwiększyć stos o...
"Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta" Oczywiście, jak sama nazwa wskazuje PWM to Pulse-width modulation.(modulacja szerokości impulsu) Jeśli zasilisz układ napięciem 24V to przy wypełnieniu PWM=255 będziesz miał 24V. Jeśli ustawisz wypełnienie 50% czyli PWM= 127 to teoretycznie powinieneś otrzymać 12V. Dlatego proponowałem,...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
W uproszczeniu częstotliwość sprzętowego generatora PWM to następująca zależność: F oscylatora / Prescaler / X, i tak: dla rozdzielczości Pwm=8 bitów X=510, dla rozdzielczości Pwm=9 bitów X=1022, dla rozdzielczości Pwm=10 bitów X=2046. Przykład dla rozjaśnienia: F kwarcu = 8MHz, rozdzielczość generatora PWM=9 bitów (możliwe 8,9 i 10), Prescaler=8 (możliwe...
Przecież masz 5 kanałów - wyjścia: OC1A, OC1B, OC2, OC3A, OC3B... Zmienne przedstawiają wartość modulacji w każdym z kanałów z osobna. Wszystkie PWMy są skonfigurowane jak 8 bitowe zatem zakres to 0..255. Ma tak być. Ponieważ nie ma aliasu (jeszcze) PWM2 dla zmiennej COMPARE2 (rejestr sprzętowy OCR2), BASCOM nie rozpoznaje nazwy PWM2. Jak zajrzysz w...
Witam. 1./ konfiguracja Timera1 musi być w jednej linii jako całość np. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect Po za tym masz nie pozamykane prawidłowo warunki IF. Poniżej przykład całości: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1...
[syntax=basic4gl]$regfile = "m328pdef.dat" $crystal = 16000000 '*** Timer0 Config for 500Hz Interrupt CTC Mode *** Config Timer0 = Timer , Prescale = 256 , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 1 Enable Compare0a : On Compare0a Int0_isr : Compare0a = 249[/syntax] Kompiluje się bez problemu. Co do ustawienia na rejestrach. Napisałem...
Jak to nic nie podłączone ? A jak ma uc odbierać kody z pilota jeśli nie na ICP ? This program works by connecting the Data output from the IS1U621 to the ICP ' Pin of the AVR and then uses the Capture1 interrupt to measure the time ' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt ' to detect that there has not been a...
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
Może ten Twój jakiś dziki jest :P więc spróbuj jeszcze przenieść Sub pod pętlę główną jak ja poniżej. U mnie kompilują się wszystkie wersje wiec w załączniku masz skompilowane Hex i Bin do wyboru. Sprawdź też prywatną wiadomość ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '********* TUTAJ SOBIE...
To jest proste jak świński ogon :D ahahahaha, ale napisz kawałek kodu. Czy masz tam jakiś LCD czy nie, czy masz tam jakiś Timer ustawiony do odmierzania sekundy czy Wait`ujesz :D Czy w dokumentacji czujnika pisze, że nadaje tez na końcu niewidoczne w terminalu znaki 13 lub 10? EDIT: aaa masz tu taki prosty. Napisałem przy śniadaniu więc błąd mógł się...
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
Nie mam noty przed sobą, ale o ile mnie pamięc nie myli to timery 0 i 2 mają możliwość zrobienia przerwania typu Compare w trybie CTC. Sprawdź to.
Taka składnia dotyczy tylko Timer1/Timer3/Timer4/Timer5. Nie zadziała poprawnie dla Timer0 i Timer2. Choć z moich osobistych obseracji to najnowszy BASCOM-AVR i spora grupa procesorów poprawnie obsłuży taką składnię: CONFIG TIMER0 = PWM , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM = CLEAR...
Nie wiem czy chcesz się nauczyć czy potrzebujesz program. Na początek te uwagi: 1. Nie wiem co tam robi dyrektywa $eeprom. Jest niepotrzebna w tym kodzie 2. Zmienna Ds jest zwiększana w przerwaniu niezależnie od tego czy jesteś w Menu czy nie. Tak więc po powrocie z Menu już na pewno nie zdążysz załapać się na warunek If Ds = 2 i wyzerować jej wartość....
Tak, jak już pisałem, nie tędy droga. Trzeba zrozumieć, ze Menu czyli interfejs programu z człowiekiem powinno być tylko jego nakładką graficzną. Nie może być tak, że kiedy jesteś w Menu to program zaniedbuje cały system, na przykład nie pilnuje zadanych temperatur. Pomyśl co by było gdyby termostat sterował grzałką w akwarium a Ty sobie radośnie wszedłeś...
Nie mam chwilowo zestawu testowego, stąd pytanie teoretyczne. Mam program z PWM na Timer1 sterujący wyjściem OC1A/PD5 w konfiguracji Config Timer1 = Pwm, Pwm = 8, Prescale = 1, Compare A Pwm = Clear Down Czy PWM na Timer0 skonfigurowany Config Timer0 = Pwm , Prescale = 1 , Compare Pwm = Clear Down , Pwm = On da mi taki sam przebieg na pinie OC0/PB3?...
Nie będę kombinował bo pewnie, jeśli musi to być pin do którego Timer nie ma bezpośredniego dostepu, napisałbym to tak.. Sprawdź: [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 'Atmega 8 fusy E1 D9 => 1MHz internal RC $hwstack = 64 $swstack = 32 $framesize = 32 Config Portd.6 = Output '-----TIMER 1 Config Timer1 = Timer , Prescale = 1 , Compare_a...
ElKuba, a czy atmega8 i AtMega16 masz fabrycznie nowe, czy od kogoś ? Może ktoś wpisał fuse jak już napisałem w pierwszym poście: ...Napisany program testuję w programie Proteus 6.5. ... I teraz mam pytanie czy jest to problem wynikający z niedociągnięć programu proteus... Tak więc projekt testuję tylko wirtualnie za pomoca Proteusa, i dla atmega 8...
Wszystkie Timery układu Mega32 mogą generować sygnały PWM: Timer0 - jeden kanał: OC0 - PB.3 Timer1 - dwa kanały: OC1A, OC1B - PD.5, PD.4 Timer2 - jeden kanał OC2 - PD.7 Na wejściach T0 i T1 liczniki nie generują sygnałów PWM. Co do samej konfiguracji to problem jest prawie żaden. W przypadku Timer1 sprawa jest prosta, gdyż CONFIG TIMER1 posiada wszelkie...
... Później wykorzystałem wyjście CompareA , skonfigurowałem charakter na toggle i pięknie sygnał generuje, nic nie przeszkadza sygnał jest ciągły, ale za jasną ch... nie mogę wpisać początkowej wartości i regulować częstotliwość... Świetny pomysł, tylko gorzej z wykonaniem :D Użyj jednego z dwóch trybów CTC timer1 i zmieniaj wartość końcową , czyli...
Eeeee tam.... Jak to się nie da!? Przykład konfiguracji dla atmega8: Config Timer1 = Pwm , Prescale = 1 , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Timer2 = Pwm , Async = on , Prescale = 1 , Pwm = On , Compare Pwm = Clear Up Pwm1a = 255 Pwm1b = 255 Ocr2 = 255 Pozdrawiam.
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Witam. Jestem początkujący jeżeli chodzi o mikrokontrolery. Chciałbym prosić kogoś bardziej doświadczonego o sprawdzenie poprawności mojego programu. Działanie: Sterowanie 3 silnikami BLDC i 1 serwo za pomocą PWM. uC otrzymuje przez UART literę oznaczającą funkcję, następnie ma ją zrealizować. Silniki podłączone będą przez regulatory modelarskie, a...
bascom compare atmega compare capture compare timer0
arduino sterowanie przez bluetooth termet komin wzmacniacz zanikać dźwięk
bezprzewodowy czujnik temperatury bezprzewodowy czujnik temperatury
PIUSI K600 przepływomierz – kod PC400-3- na wyświetlaczu, przyczyny i naprawa Usterka przekaźnika +ACC w Peugeot 508 - diagnostyka