Program jest bez sensu. Napisałeś to tak jak by rejestr Tccr1a był od kanału A, a Tccr1b od kanału B, a tak nie jest. Zarówno rejestry Tccr1a jak i Tccr1b sterują kanałem A, jak również obydwa rejestry sterują kanałem B. Po prostu jeden jest od czego innego a drugi od czego innego (Tccr1a od sposobu sterowania pinami i o trybu pracy Timera a Tccr1b...
Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta do PORTB.3 a to jest związane z OCR1A dlatego zle działała. Nie dlatego, nie ma tu żadnego związku. OCR1A jest to wpis do rejestru, który służy do określenia górnej granicy (TOP) do jakiej ma liczyc Timer1 co odpowiada upływowi czasu tu akutat 1 sec., zaczym się wyzeruje. Jeżeli...
Może zaczniesz od czegoś łatwiejszego , będzie prościej i mniej stresująco . No, nie żartuj z faceta!. Co może byc łatwiesze (?) ? miganie diodą ?... Spójrz na jego ?credentials? w lewym oknie. Gośc jest tu około 10 lat, więc pewne rozeznanie w temacie posiada i ?kurs? z miganiem diodą z pewnością dawno ukończył. Może potrzebuje troche odmiennego spojrzenia...
Chciałbym jednak użyć CTC, ale kompletnie nie wiem jak się za to zabrać w Bascomie. Nie znalazłem na forum żadnych przykładów. Jak by ktoś poczęstował przykładem kodu dla z CTC w Bascom to byłbym niezmiernie wdzięczny :) Jakieś kilka dni temu, nie dłużej jednak niż tydzień, ‘gaskoin’ podal dokładną procedurę konfiguracji CTC. Jeżeli przeoczyłeś...
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...
Udało mi się! 'Przykład generowania fali prostokątnej niezależnie od CPU 'procesor AT Mega8 'zegar wewnętrzny 1 MHz 'piezo pomiędzy PB.1 a +5V 'UWAGA!!!, ATMEGA8 ma domyślnie załączonego Wachdoga!!!. Trzeba wyłączyć bezpiecznik!!! $regfile = "m8def.dat" $crystal = 1000000 Dim I As Byte Ddrb.1 = 1 'port b.1 wyjściowy '---------------------------------------...
Trzeba klawiszem zerować zmienną odpowiedzialna za wypełnienie (ustawiać wypełnienie 0 - zatrzymanie silnika)... Można i tak, tylko po co utrudniać sobie zadanie :?: Wyjście OCx jest wyjściem alternatywnym , którego funkcję możemy ustawić w rejestrze TCCR1A za pomocą pary bitów COMxxx. Piotrek
... Będziesz mnie przeklinał, ale nie dostaniesz gotowca. - w Tiny45 kanał "B" wpisany jest w GTCCR - wobec powyższego konfiguracja zmieściła się w jednym rejestrze TCCR1 (tiny45 strona 92), (tiny26 strona 72, rejestry TCCR1A i TCCR1B) tyle z "podpowiedzi".
Dzień dobry, Chciał bym zrobić sobie prosty oscyloskop tyle że z wykorzystaniem uC Atmega8. Czy mógł by mi ktoś przetłumaczyć poniższy kod na język Bascom, lub chociaż objaśnić jego działanie? Kompletnie nic z tego nie rozumiem... Za przetłumaczenie na język Bascom oferuję 500pkt
O K Widzę,że sam muszę sobie odpowiedzieć. Po żmudnych próbach z konfigurowaniem PWM w Bascomie doszedłem do wniosku, że żadna z wersji tego kompilatora nie jest w stanie prawidłowo skonfigurować PWM na procesorze ATMEGA. Trzeba to zrobić przez bezpośrednie oddziaływanie na rejestry. Np.: $regfile = "m16def.dat" 'Deklaracja rodzaju procesora Ddrd =...
Hmm... tak już robiłem i to nie pomogło... ale już poradziłem sobie z problemem ;D Wina była zakłóceń, bo po dolutowaniu na wejście pomiarowe ADC8 kondensatora, diody przestały szaleć. Dodatkowo brakowało przesunięcia bitowego (bo na port podawało 8 bitów młodszych z 10). Miałem na celu zrealizowanie sterownie PWM za pomocą ADC (napięcie z potencjometru)....
Nie piszesz nic o pozostałych parametrach układu więc zakaładam, że uC chodzi na wewnętrznym RC=8MHz... Wygodnie jest wykorzystać timer1 (16-bit)... Mode 14 - fast pwm, wartość top (ICR1=10000), prescal=1... Przy takiej konfiguracji częstotliwość pwm wynosi ~800Hz, co dla żarówki jest aż nadto... Wyjście pwm PB1(OC1A)... Wypełnienie zwiększane o 1 co...
Witam! Stworzyłem kiedyś projekt na atmega32 w którym za pomocą dwóch timerów 8-bitowych regulowałem dwie częstotliwości wyjściowe ustawiając timery w tryb ctc Tccr2 = &B10011001 Ocr2 = Wartosc Tccr0 = &B10011001 Ocr0 = Wartosc1 wszystko idealnie działało jednak z czasem pojawiła się potrzeba aby regulować częstotliwość z większą dokładnością. Postanowiłem...
Witam. Mam pewien problem. Próbuję zrobić nadajnik kodu RC5 z użyciem mikrokontrolera AT Tiny26L SMD w Bascomie AVR 1.11.7.0. Niestety, polecenie RC5Send nie działa na tym układzie (Assignment Error Dim Rc5_address As Byte Dim Rc5_command As Byte 'Dim Key As Byte 'Dim Key_prev As Byte Dim Rc5_bit_nr As Byte Dim Toggle_bit As Boolean ' 36kHz carrier...
Ogólnie nie pisze w bascomie. Rozumiem jak coś jest napisane, ale samemu raczej nic nie wymodzę. Załączyłem schemat z podstawowymi elementami każdego układu z mikrokontrolerem (kondensatory filtrujące, pull-up na resecie) http://obrazki.elektroda.net/10_12568564... Jedna dioda podpięta do wyjścia OC1A - wyjście PWM. Atmega8 ma jeszcze 2 takie...
Po pierwsze, możesz jak najbardziej korzystać z timera (a właściwie to powinieneś, jeżeli chcesz pomniejszyć koszta o zakup zewnętrznego RTC). Po drugie - możesz kalibrować, możesz to robić długo i bezskutecznie. Po drugie i ćwierć - Wewnętrzny oscylator nie za bardzo nadaje się do tego celu. "Nieco" mu się zmienia częstotliwość wraz z temperaturą i...
O faktycznie coś skiełbasiłem... Chyba tak i to okropnie! Probowałem to przełozyć na timer 1 i bascom wali błędami... STR 88: Fpwm = Fcpu/2x preskaler - (1-OCRnA ) OCRA to rejestr ... wiec trzeba mu wpisać parametr.. Stosujesz błedny wzór na częstotliwośc Fast PWM dla Timera1 ; Poprawny wzór jest ze str 91: http://obrazki.elektroda.pl/1495204000_1...
Niestety ale opcja wait nie nadaje sie do moich celów gdyż wtedy nie widzę co się dzieje z temperaturami, ciśnieniem układu. Wszystkie pomiary stoją. Cóż będę musiał poszukać podobnych programów i coś może wykombinuje. Dzięki za odpowiedzi! Bedziesz wie musial uzyc jeden z wolnych timerow. Ponizej masz przyklad zastosowanie timera 1 w trybie CTC. (z...
O to poprawiony przeze mnie kod: 'Bascom-AVR ver.1.11.7.4 $regfile = "AT26DEF.DAT" $crystal = 8000000 Ddrb = &B00001100 Portb = &B00001111 'Osccal = 238 'Osccal = 226 'Osccal = 210 'Osccal = 190 'Osccal = 162 'Osccal = 124 'Osccal = 65 Osccal = 65 Pllcsr = &B00000010 Pllcsr = &B00000111 Ocr1c = 225 Ocr1b = 128 'Tccr1b = &B01000010...
Witam wszystkich Forumowiczow, do tej pory nigdy nie miałem potrzeby pisać postu bo wszystkie problemy rozwiązywałem opcja search ;-) az do tej chwili. buduje układ przetwornika AD 24 bitowego, ktory komunikuje sie z Atmega8 po SPI hardware a ta z kolei z moim PC po RS232. Docelowo maja byc 2/3 przetworniki, poki co jest jeden i walka trwa ;-) Całość...
Poniżej mój testowy program w bascomie. Procek m8, wew. zegar 8 mhz. Testowałem na nikon D80 - działa OK. ' PILOT NIKON ML-3 ' ZEGAR 8 MHZ Dim I As Word Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1 Config Portd.5 = Output Reset Portd.5 Compare1a = 100 Enable Interrupts Disable Timer1 Reset Tccr1a.com1a0 '***************************************...
...Proszę o jakieś podpowiedzi bądź kawałek kodu co ma być dalej, żeby generować te nieszczęsne 40kHz ... To już wszystko :) Na pinie PB1 masz przecudne 40kHz , jeśli faktycznie procek jest popędzany 8MHz. W ramach testu , możesz w pętli głównej napisać: Do Set Tccr1a.com1a0 'dołącz oc1a do pinu Wait 5 'przez 5 sekund fala 40kHz Reset Tccr1a.com1a0...
TCCR1A=0 lub TCCR1A=TCCR1A AND &H3F i masz kontrolę nad pinem Portb.1(OC1A) Piotrek
Na tej płycie masz LED-y. Sprawdź na nich. Sprawdziłem Twoje ustawienia -ale w Bascomie. Na takiej samej płytce. Wszystko chodzi. Wygląda to na układ a nie program. Poniżej program-napisałem w sposób zrozumiały dla C. $regfile = "M8def.dat" $crystal = 8000000 'Config Lcd = 20 * 2 'Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 =...
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
Witam, Chciałbym sobie "ręcznie" ustawić do pracy w trybie CTC Timer1. Tak aby generować na 2 wyjściach stały przebieg PWM. próbuję to ustawiać tak: Ocr1ah = High(1562) 'ma być 10Hz Ocr1al = Low(1562) Ocr1bh = High(3124) 'ma być 5Hz Ocr1bl = Low(3124) ' zmiana stanu wyjścia OC1A na przeciwny, przy porównaniu ' zmiana...
... Jedyny minus, przy pwm1a=0 są "szpilki"... Zamiast wpisywania do rejestru ocr1a(Pwm1a) zera , przełącz funkcję PINB.1 na standardową(I/O) , poprzez wyzerowanie bitu COM1A1 w TCCR1A.Przed uruchomieniem Timera wyzeruj PORTB.1 . Np. Set DDRB.1 Reset PORTB.1 TCCR1A=&B10000001 TCCR1B=&B00001001 '... If Wypełnienie = 0 Then Reset TCCR1A.COM1A1 'PINB.1...
Zawsze możesz zwiększyć taktowanie do 16MHz - które ATMega8 bez L przyjmie. Możesz też zmniejszyć rozdzielczość do N bitów przez zmianę ustawień w TCCR1A, TCCR1B i CAPTURE1.
Witam. ........... nie wiem jak zrobić aby te wyzwalanie było tylko od narastającego zbocza. Ściągnij pin 'Start' (PIND.5) rezystorem 10k do GND i odwróc jego logikę na przykład: If Pind.5 = 1 And B = 0 Then Druga sytuacja nie wiem dlaczego ale silnik mi przerywa tak co około sekundę gdy PWM jest włączony. Prawdopodobnie w tym czasie następuje zmiana...
Oto ostateczna wersja programu, przebieg PWM ma częstotliwość ok 30kHz, przy taktowaniu układu z wewnętrznego generatora częstotliwością 8MHz (domyślnie jest 1MHz, theba przestawić FB): ' ########################################... ' # Control programm for Trolling Motor driver # ' # (C)2008 by Tomasz Orczyk # ' ########################################...
Kod kolegi zumek działa bez zarzutu Zrobiłem jeszcze opcje włączanie i wyłączania na dwóch przyciskach. [syntax=basic4gl]Debounce Pind.0 , 0 , Neg_com1a0 , Sub Debounce Pind.1 , 0 , Poz_com1a0 , Sub Loop Neg_com1a0: Set Tccr1a.6 Return Poz_com1a0: Reset Tccr1a.6 Return[/syntax]
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Zacznę od zamieszczenia kodu źródłowego i schematu: ' ########################################... ' # Control Programm for Trolling Motor Driver # ' # (C)2008 by Tomasz Orczyk # ' ########################################... $regfile = "m8def.dat" $crystal = 8000000 'CKSEL3..0=0100 - 8MHz Internal (PWM ~30kHz) 'SUT1..0=01...
DDRD.5 = 1 TCCR1A = &B10000010 TCCR1B = &B00011001 ICR1 = 222 OCR1A = 22 '0...222
To na razie wersja robocza więc sporo niedociąnięć, muszę jednak zacząć rezygnować z bascoma. Niby już wszystko było OK, ale gdy tylko w pętli głównej przed wyświetlaniem chciałem zamaskować wynik poleceniem fusing, znów jakieś głupoty zaczęły się dziać. Nie mam już nerwów. $crystal = 8000000 $regfile "m16def.dat" '*********************zmienne***********...
No dobra kombinowałem kombinowałem i wykonbinowałem sprawdziłem sobie w symulatorze bascom jak ustawia TCCR1A=161 TCCR1B=3 :D i poprostu to soamo wpisałem analogicznie do TCCR0A i TCCR0B może nie umiałem skorzystać z noty katalogowej ale działa poprawnie :) aha i nie trzeba ustawiać OCR0A= i OCR0B= działają komendy PWM0A= i PWM0B= jak komuś to sprawi...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Kod poprawiłem, a z tym: Obroty1 255 Obroty2 120 Obroty3 100 Enter niekoniecznie tak musi być, może być Obroty1 200 Enter Obroty2 120 Enter Obroty3 200 Enter. Domyślam się, że dużo pisania by było, gdyż trzeba dopisać dużo zmiennych i je uwarunkować, mimo wszystko - jeszcze raz dziękuję za pomoc. P.S. Czy można prosić o sprawdzenie tego fragmentu kodu,...
[syntax=basic4gl] Config Pind.5 = 1 Tccr1a = Bits(com1a1 , Com1b1 , Wgm11) Tccr1b = Bits(wgm13 , Wgm12 , Cs11) Icr1 = 20000 Ocr1a = 8000 [/syntax]
Witam. Męczę sie z pomiarem odległości ultradźwiękami i układ już prawie działa (nad i odbiornik mają ok 10mm średnicy - czy to nie za mało?): pokazuje odległość w cm ale trochę za dużo, reaguje na oddalanie i zbliżanie sonaru od ściany (odległość rośnie lub maleje). Problem jest taki, że program czasem się zatrzyma (chyba wtedy gdy nie odbierze echa...
z jakiegoś swojego starego projektu zerknąłem na ustawienia i mam tccr0a=a3, tccr0b=2 tccr1a=a1, tccr1b=2 tccr2a=a1, tccr2b=2 przy nich na 16MHz pwm'y chodzą 4kHz (możliwe ze jeden z nich na 8Khz)
Jeśli nie masz na stanie generatora to może zainteresuje Cię, albo kogoś innego, taki najprostszy generator który operowany jest dwoma potencjometrami. Jeden ustawia częstotliwość a drugi wypełnienie 1%-99%. To pozwoli szybko znaleźć odpowiednie parametry dla przetwornicy i potem można ustawić Tiny13 na rejestrach . Kod będzie działał na Arduino Mega2560,...
Szukam porady na temat odpalenia 4kanałow PWM na tiny2313. Kod poniżej uruchamia jeden kanał: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Start Timer1 Pwm1a = 100 Próbowałem z Tccr0a = &B00110011 Tccr0b = &B00001000 Ocr0a = 200 Ocr0b = 200 jednak bascom nie "podświetla" Tccr0a tak jak Tccr1a,...
Hmm... no tak... brak odpowiedzi to dobra odpowiedź :) Zmusza do myślenia. Nie mam doświadczenia w programowaniu, ale wykombinowałem sobie tak, iż niezależnie od tego w którym momencie wykonana instrukcja skutkuje ustawieniem portu w stan wysoki, trzeba złapać w instrukcjach taki sam okres i stałą Waitms tak go zawęzić, żeby wpadł w granicę 36kHz. Czyli...
Dziekuję Bede testował :) Dodano po 3 No nie do końca to chce działać tak jak napisaliśmy... bascom nie przyjmuje składni timer + clear_up ale problem okiełznałem na dwa sposoby... Bascomowy: [syntax=vbnet] 'puść timer z generacja comapre Config Timer1 = Timer , Prescale = 1 , Compare_A = Toggle ,Compare_B = Toggle , Clear_Timer = 1 'zapisz wartość...
Regulacja częstotliwości? Sprzętowo? Owszem. Ale kosztem rozdzielczości PWM. Trzeba włączyć tryb z wartością TOP ładowaną do Capture1. Potem w programie: zmiana Capture1 daje zmianę częstotliwości, ale wymaga też przeliczenia wartości Pwm1a/1b. Samo wypełnienie zmienia się w Pwm1a/1b, ale trzeba zawsze brać pod uwagę wartość z Capture1 by nie wpisać...
...Dziękuję za pierwszy konkretny post w sprawie ... No to ja dodam cos konkretnego od siebie. Dla niewierzącego mirekk36 cytat z NE6/2004 "W Bascom nie działa Config Timer1=TIMER, PRESCALE=8, Compare A =TOGGLE, działa natomiast TCCR1a=&B01000000 TCCR1b=&B00001010 Takich przykładów jest po kilka w publikowanych programach. Ten osobnik (może osobniczka)...
To co należy zrobić, aby skonfigurować Timer0? Przeciez ci 'dawid 512' napisal. Przyjzyj sie tym acronimom z twojego listingu: ...... Tccr1a Tccr1b .... Pwm1a Jak myslisz, co one maja wspolnego?; co oznacza ta 'magiczna' cyfra "1" ? Nie znaczy to ze masz dokladna analogie dla Timera0 (nie sa one jednakowe), ale musisz konfigurowac Register TCCR0 zamiast...
Robię to w Bascom, oto program... [syntax=vbnet]$regfile = "m8def.dat" $crystal = 11059200 'kwarc $hwstack = 128 ' default use 32 for the hardware stack $swstack = 128 'default use 10 for the SW stack $framesize = 128 'default use 40 for the frame space ' $prog &HFC , &HAE , &HC9 , &H00 ' generated. Take care that the chip supports all fuse bytes. Ocr1a...
Dla sterowania dwoma serwami konfiguruję PWM1 poprzez bezpośredni zapis rejestrów: Tccr1a = &B10100010 'mode14 - fast pwm, icr1, prescale64 Tccr1b = &B00011011 Icr1h = &B00010011 'wartość icr1=4999 Icr1l = &B10000111 Tcnt1h = 0 Tcnt1l = 0 i steruję serwami przez Ocr1ah = High(pozycja_serwa) Ocr1al = Low(pozycja_serwa) lub Ocr1bh = High(pozycja_serwa)...
bascom tccr1a bascom tccr1a tccr1b tccr1a atmega8
multiswitch unicable oznaczenie drukarka jakie imadło kupić
Niskie ciśnienie wody po odkręceniu kranu - przyczyny i rozwiązania Kod błędu 00281 - Nadajnik prędkości G68