Witam, Config Timer2 = Pwm , Prescale = 8 , Compare = Toggle , Pwm = On , Compare Pwm = Clear Up ... Ocr2 = 0 Napięcie na wyjściu "OC2", jest proporcjonalne do zawartości "Ocr2". Oczywiście możesz zmienić preskaler, itp. Pozdrawiam.
To jest przykład dla Atmega8, nie wiem czy pomoże: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Cursor Off Cls Rem konfiguracja portów Dim R As...
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...
Ja bym zdeassemblował kod i zobaczył jak BASCOM robi to na Timerze0 i tak samo bym to zrobił na Timerze2 ;) Dodano po 13 Na początek: $regfile = "M16def.dat" $hwstack = 32 $swstack = 32 $framesize = 32 $crystal = 16000000 '---------------------------------------... Dim Licznik_servo As Byte Dim Servo As...
Witam Na atmega8 program działa idealnie lecz na atmega 16 nie działa timer2 w ogóle nie zlicza nie mogę go uruchomić.. Czy na atmega16 uruchamia się go innaczej niż na atmega8. [syntax=basic4gl]$regfile = "m16def.DAT" $crystal = 1000000 $baud = 1200 Config Timer2 = Timer , Async = On , Prescale = 128 On Timer2 Zegarek Enable Interrupts Enable Timer2[/syntax]...
Już działa. Żeby było ok, trzeba ustawić bity wrejestrze TCCR2 : Config Timer2 = Pwm , Async = Off , Prescale = 1024 , Pwm = On , Compare Pwm = Clear Down Reset Tccr2.com20 Set Tccr2.com21 Enable Interrupts Enable Timer2 Compare2 = 20 I teraz jest dobrze. Ale teraz - jak ustawić timer 0 jako PWM ? Bo config timer0 = pwm wywala mi błąd kompilatora.
Bądź na drugi raz bardziej precyzyjny bo szkoda klawiatury. Najpierw piszesz o Timer0 a okazuje się że Timer2 masz wolny... Piszesz o sekundach a okazuje się że potrzebujesz 500ms... Do (at)zumek nawet na ten kod nie patrzyłem bliżej bo po uzyskaniu info, że to jednak Timer2 od razu doradziłbym CTC :D [syntax=vbnet]$regfile = "m32def.dat" $crystal =...
Witam W Atmega 644 mam: EQU not found, probably using functions that are not supported by the selected chip Według noty Timer0 i Timer2 są 8-bitowe, więc można je "zamieniać" i mają oddzielne preskalery.
Proszę - tak w świątecznym nastroju ;) Dodałem korekcję mojego pomysłu. Bardzo prosta ale skuteczna. Nadmienić trzeba, że sterowanie trzema kanałami ma sens wtedy, kiedy potem, gdzieś w kodzie, te kanały mają różne wartości. https://filmy.elektroda.pl/1_1450952163.... [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 80 $swstack = 64...
Hej, Ahaaaaa.... i jeszcze raz AHAAAA ! Dziękuję :-) No tak, czytałem o tym poleceniu SOFT, ale nie bardzo wiedziałem jak można go użyć. Niby działa, ale Atmega wysyła mi ciągle czas 00:00:00. Nic nie zlicza. Czy możecie sprawdzić czy dobrze zapisałem wytyczne do zapisu przy zaniku zasilania? Nie wiem też czy dobrze zainstalowane są kondensatore podtrzymujące...
Witam. Chciałem sobie zrobić prosty zegarek. Napisałem kod, podłączyłem wszystko na mojej płytce testowej i niby działa, ale ... Za szybko odmierza czas. 1 sekunda trwa tutaj dużo krócej. W ciągu 1 minuty w rzeczywistości, naliczy 170 sekund. ATmega ma ustawiony fusebit na wewnętrzny oscylator 8Mhz, do XTAL1 i XTAL2 mam podłączony kwarc zegarkowy. Kod...
Witam Chodzi o to, że jest ATMEGA z wbudowanym zegarem RTC. Po odpowiednej konfiguracji i uruchomie wszystko jest OK, zegar pracuje. Jednak zegar ten ma być wykorzystywany do pomiaru krótkich odcinków czasu. Czyli odmierza ustawiony czas i jest blokowany poprzez STOP TIMER2 (w Bascomie). Po naciśnięciu klawisza start układ wg założeń powinien uruchomić...
Mam następujący problem, pisze program do zegarka, próbuję odliczać sekundy na timerze 2 w trybie asynchronicznym, podłączyłem kwarc zegarkowy do pinów 7 i 8 plus kondensatory 22pF. Naczytałem się datascheet'a poprzeglądałem przykładowe źródła i wyskrobałem kawałek kodu. Do portu PB0 jest podłączona dioda która ma sygnalizować odmierzoną sekundę. #define...
Ok, a teraz jeszcze jedna sprawa: Zmodyfikowałem trochę program by wyświetlał na multipleksowanych wyświetlaczach LED 4x7 odebraną komendę. Jak zwykle trochę chodzi, ale nie do końca - założenie jest takie: odbiera komendę z rc5 i wyświetla ją na led, efekt jaki uzyskuję: odbiera komendę, wyświetla na ułamek sekundy, potem wyświetla 95, czasem się zdarzy,...
chyba moja atmega tego nie ma ;P $regfile = "m8def.dat" $crystal = 1000000 Config Portc.0 = Input Config Portb.5 = Output Config Timer2 = Timer , Prescale = 64 Config Int1 = Rising If Portc.0 = 0 Then ' opuznienie = 1wartosc z tabeli jak to zrobic? If Portc.0 = 1 Then ' opuznienie = 2wartosc z tabeli jak to zrobic? ... PWM_Table: Data...
Witam. Szukam 2 dni i nic. Jakiś przykład kodu czy coś. Atmega 16, podłączony kwarc zegarkowy do TOSC1/2. Kod programu to: $regfile = "m16def.dat" $crystal = 8000000 'Oscylator wewnętrzny Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 Config Clock = Soft...
Niestety to nie jest wina prescalerów i taktowania, próbowałem już w każdej kombinacji . Żadnej różnicy nie zauważyłem, a napięcie przy wyjściu pwm się nie zmienia. Z tego co wiem ,to może być to wina złej kompilacji, dlatego przy wyjściu oc1a(Pin D5) od pwma muszę odwoływać się do poszczególnych rejestrów coś na wzór tego: [syntax=vbnet]Config Pinb.3...
Witam! Chciałbym uzyskać przebieg o wypełnieniu 50% i f~33kHz w trybie CTC na pinie PB3 Atmega 8L (OC2). Podpiąłem wyjście OC2 na oscyloskop i ciągle stan wysoki. Pierwszy raz i na szybko potrzebuję wygenerować taki przebieg. Proszę o pomoc. Późno już i coś mnie chyba przyćmiło. Namieszałem coś z ustawieniami portów czy jakiś rejestr nie jest ustawiony?...
http://obrazki.elektroda.pl/9447369300_1... Ogólnie chodzi o to Ten kod pokazany wyreparowałem do testów bo nie chciało mi się ciągle wgrywać prawie 16k http://obrazki.elektroda.pl/9447369300_1... Może w tym problem ale jak ustawię pwm=8 to za nic nie wychodzi mi przeliczenie do wyświetlania ciągle na fula mam 102% ale testowałem...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam. Mam lcd ks0108b 128x64 i chcę zrobić licznik. Chcę napisać program na atmega 644/16 który będzie zliczał czas między impulsami na int0 po czym 3.6 dzelił przez wynik i mnożył razy obwód koła. Początek programu napisałem, skonfigurowałem port na zbocze opadające ale nie wiem ja liczyć ten okres. Proszę o pomoc w tym programie. [syntax=basic4gl]...
w power save wprowadza cie petla config int0 = rising on int0 przerwanie zapomniałeś o: Enable Int0 Enable Interrupts budzi go zbocze narastajace na np int0 A figa z makiem , bo żadne zbocze go nie obudzi , tylko przerwanie niskim poziomem ;) Pojawia się też kolejny problem , jeśli ten RTC chodzi na Timerze2 proca , a nie na na zewnętrznym RTC . Co...
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
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 Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
[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...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
Użyj Timer2 dla obsługi RC5 zamiast Timera0 Config Rc5 = Pind.2 , timer = 2 i będzie OKejos ;)
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 ,...
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 '...
Ok, poniżej przykład odliczania jednej sekundy, w zmiennej 'ilesekund' co jedno przerwanie zegara będzie dodawana jedna sekunda. Oto kod: Dim ilesekund As Byte ilesekund = 0 Config Timer2 = Timer , Async = 1 , Prescale = 128 On Timer2 Sekunda Enable Interrupts Enable Timer2 Do 'tutaj możesz dać warunek, np. if ilesekund=60 (1 minuta) to coś...
Program poprawiłem, ale dalej jest problem z drugim timerem tzn. działa tylko z TIMER0 , działa klawiatura, funkcja rozpędzania wirnika. włączenie drugie timera wiesza program. Zamieszczony program (tylko z TIMER0) działa fizycznie. [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 '$sim '***************************************... Config...
Z tego co porównuję z listingiem źródłowym z książki to masz kilka błędów: sprawdź: [syntax=basic4gl]Config Lcd = 16 * 2[/syntax] oraz umiejscowienie [syntax=basic4gl]Cls[/syntax] w pętli a u ciebie jest poza pętlą oraz wyrzuć konfigurację [syntax=basic4gl]Config Timer2 = Timer , Async = On , Prescale = 128[/syntax] sprawdź także ustawienia Fuse CKSEL3..0...
Witam Mam zrealizowany w A2560 jak na razie jeden kanał PWM. Zrobiłem tak: Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'regulacja jasności pwm1a i dalej ustalam sobie poziom (jasności LCD) w zakresie 0-254 i przepisuję tak: Pwm1a = wartosc Teraz muszę dorobić jeden lub dwa kolejne takie kanały...
Myślę że forum jest nie tylko po to by pytać. Kolega zdążył zamknąć wątek i napisał że Bascom nie pozwolił na skonfigurowanie Timera i musiał to zrobić na rejestrach. Nie wiedział jak, a ja chciałbym dla potomnych zostawić instrukcję. Dołączyłem ten post i odblokowałem temat. Tak to wygląda i się kompiluje: [syntax=basic4gl]$regfile = "m128def.dat"...
Jeśli nie potrafisz to zrób to prościej. Podłącz zewnętrzny kwarc 32,768kHz (zegarkowy); Config Clock = Soft Procedura zegara używa specjalnych zmiennych: _day , _month, _year , _sec, _hour, _min Wszystkie są typu Byte. Można je modyfikować bezpośrednio: _sec = 1 Sprawdź, o ile się spieszy (opóźnia). Różnicę koryguj warunkiem któregoś dnia np o północy.
Podłączyłem go do pinów portu B (t1, t0) To podłącz go do PC6, PC7. [syntax=basic4gl]Config Timer2 = Timer , Async = 1 , Prescale = 128 On Timer2 Myisr Enable Interrupts Enable Timer2 Do Loop Myisr: 'procesor będzie tu "wskakiwać" co sekundę przy kwarcu 32768Hz Return[/syntax] Można to znaleźć w helpie.
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...
Zobacz tak. Napisałem na kolanie bez sprawdzania, ale może zafuczy ;) Na marginesie funkcja Getrc5() używa Timer0 i powinieneś zostawić go w spokoju czyli do innych rzeczy, jeśli potrzebne, użyć Timer1 lub Timer2. [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack=64 $swstack = 32 $framesize=128 $baud = 9600 Config Portb = &B11111111...
witam ze specyfikacji wyczytalem ze ten procesor ma dwa wyjscia pwm, jedno pod wyjsciami pd4 (oc1b) i pd5 (oc1a) (timer1), a drugie pod wyjsciem pd7 (oc2) (timer2) .... pierwsze wyjscie dziala bez problemu natomiat drugiego nie moge skonfigurowac (pod bascom-em), wyskakuje mi error86 przy lini w ktorej konfiguruje timer2 ... nawet kiedy wpisuje: config...
ten timer włączyłeś? W bascomie uzyles pewnie config clock=soft Więc jesli z punktu widzenia konfiguracji timera i procesora jest wszystko ok, to przyczyna moze byc jedna: kwarc nie oscyluje. Spróbuj podotykać np. pęsetą (trzymając ją mocno w ręku) pinów kwarca. Jesli zaczną przeskakiwać sekundy to błąd jest w kwarcu == wymień kwarc. Ta sytuacja tez...
Config Pinb.3 = Output 'Config Timer0 = Pwm , Prescale = 1 , Compare Pwm = Clear Down Set Tccr0.pwm0 Set Tccr0.com00 Set Tccr0.com01 Set Tccr0.cs00 Ocr0 = 127 'T2 już normalnie ;) Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Down Ocr2 = 127
Nie możesz tylko używać Timera2 do innych celów, bo właśnie jest on używany przez RC5 Funkcja GETRC5 domyślnie wykorzystuje Timer0 a nie Timer2. Oczywiście można to zmienić w konfiguracji, jednak autor tego nie czyni. Zatem pozostają mi dwie opcje, albo przestać używać timera0 do odliczania 1s odcinków czasu i zaprzęgnąć do tego timer2 (co może nie...
Ja nie widzę problemu. :D Timer1: CONFIG TIMER1 = COUNTER | TIMER | PWM , EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 , NOISE CANCEL=0 |1, CAPTURE EDGE = RISING | FALLING , CLEAR TIMER = 1|0, COMPARE A = CLEAR | SET | TOGGLE I DISCONNECT , COMPARE B = CLEAR | SET | TOGGLE I DISCONNECT , PWM = 8 | 9 10 , COMPARE A PWM = CLEAR UP| CLEAR DOWN | DISCONNECT...
Użyj Timer'a 2 i wszystko będzie cacy. Pzdr. A piny to się konfiguruje tak: Config Pinb.1 = 1 a nie Portb.1. Przydaje się też wrzucenie linijki z def'em procka: $regfile = "M8DEF.dat", zresztą: $crystal = 8000000 $regfile = "M8DEF.dat" Config Timer2 = Timer , Prescale = 256 On Timer2 Przerwanie Dim A As Byte , B As Byte Config Lcd = 16 * 2 Cursor Off...
OK, nie ma. Ale to czego brakuje to tylko 4 banalne makrodefinicje i trochę kodu inicjującego/deinicujującego SPI. To nie powinien być problem. W którejś z poprzednich wersji liba było to: [syntax=c]/*----------------------------... /* MMCv3/SDv1/SDv2 (in SPI mode) control module (C)ChaN, 2010 */ /*--------------------------------------...
Możesz zamieścić ten fragment kodu, który działa z Timerem1? I dlaczego stosujesz tryb Timer4 Compare Match A? Timera1 w 128 używam do PWM-u. [syntax=basic4gl] 'Sprawdza Timer2 $regfile = "m1281def.dat" $hwstack = 500 'odkładają się wszystkie adresy powrotne skoków wewnętrznych, przerwań i tych wywołanych przez GOSUBodkładają się wszystkie adresy powrotne...
Witam: Mam problem, potrzebuję odczyt z pilota w przerwaniu a nie chce działać. Poniższy kod nie działa, natomiast to samo w pętli głównej działa: [syntax=basic4gl] $regfile = "m168pdef.dat" 'deklaracja rodzaju procesora (tutaj Atmega168p) $lib "mcsbyte.lbx" $crystal = 8000000 'taktowanie Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down ,...
Witam Na wstępie się przywitam - na imię mam Piotr, jestem sobą początkującą w kwestii programowanie mikrokontrolerów AVR - przez ostatni rok "bawiłem" się w różne układy na m32 - pisząc soft w bascomie. Przesiadłem się kilka dni temu na procesor m1280 - i tu mam kilka problemów, których źródła nie potrafię zdiagnozować. Przede wszystkim - po wgraniu...
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
config timer2 atmega timer2 timer2 atmega
schemat agregatu trójfazowego grzałka kolektor ssać płyta ściana
engine fault peugeot depollution system faulty peugeot
Sterownik trójfazowy DC: błąd nadprądowy w trybie prawostronnym Podłączenie elektronicznego wyłącznika odśrodkowego do silnika 1,5 kW jednofazowego