W złym miejscu masz DO Przestaw przed pwm1a
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.
Do tego najlepiej użyć PWMa. Na medze ósmej musisz uruchomić timer1. [syntax=basic4gl] config timer1 = PWM , pwm = 10 , compare a pwm = clear up , compare b pwm = disconnect , prescale = 1 Dim opu as word do for opu = 0 to 1023 pwm1a = opu waitms 3 next opu for opu = 1023 to 0 step -1 pwm1a = opu waitms 3 next opu loop end [/syntax] To tak na szybko....
przepisałem ze zrozuminiem. Zauważyłem błąd i poprawiłem. Ale dalej jest to samo. Jak jest na 100% wypełnienie i nacisnę PLUS to spada do 0 wypełnienie. Użyj warunku ;) Pwm1a = 0 Do If Plus = 0 Then Waitms 15 If Obroty < 255 Then Incr Obroty Waitms 20 Pwm1a = Obroty End If If Minus = 0 Then Waitms 15 If Obroty > 0 Then Decr Obroty Waitms 20 Pwm1a...
Zobacz to: $regfile = "m8def.dat" $crystal = 16000000 Config Portb = Output Portb = &B00000000 Config Portd = Input Portd = &B11111111 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Przycisk Alias Pind.1 Dim D As Byte , Czekaj As Integer D = 0 Pwm1a = D Czekaj = 0 Do If Przycisk...
Mam pytanie czy jest możliwość sterowania PWM1a i PWM1b osobno tzn nadać dla PWM1a Prescale 64 a dla PWM1b Prescale 8 ? Mam taki kod [syntax=basic4gl]Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 64 Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1[/syntax][/code]
$regfile = "M8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 32 '---------------------------------------... Dim Adc_data As Integer Dim S As Single Dim L As Long Dim Text As String * 30 '---------------------------------------... Portb = &B00000000...
http://obrazki.elektroda.pl/7139682100_1... Witajcie Wlasciwie jest to moj pierwszy temat na forum wiec prosze z gory o wyrozumialosc. Przepraszam rowniez, za brak polskich fontow, ale pomimo prob wielu nie ogarniam wiekszosci ogonkow z racji lokalizacji :/ Przyszly swieta, czas urlopu i odpoczynku... Niestety wraz ze swietami przybyla...
Witam, Próbuję ustawić PWM w Atmega 8. Potrzebuję impulsy co 20ms o długości od 1 do 2ms, sterujące serwomechanizmem. Próbowałem ustawić tak: #include <avr/io.h> #include <avr/interrupt.h> int main( void ) { DDRD = 0xFF; PORTD = 0xFF; DDRB = 0xFF; TCCR1A = ( 1 << COM1A1 ) | ( 1 << WGM11 ); TCCR1B...
Witam. Posiadam następujący kod [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define LED1 (1<<PB1) #define LED2 (1<<PB2) #define PWM_START 125 void timer1_pwm() { TCCR1A |= (1<<COM1A1) | (1<<COM1B1); OCR1A=PWM_START; OCR1B=PWM_START; TCCR1A |=(1<<WGM10); TCCR1B |=(WGM12) | (1<<CS10); } int...
Witam Zadeklarowałem przepisowo Timer1 jako PWM: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Disconnect , Compare B Pwm = Clear Up , Prescale = 8 Obciążyłem wyjście również przepisowo rezystorem 4k7 (dalej jest baza tranzystora) i teraz czary: wszystko działa ale jak wpisuję do PWM1B = 0 (zero) to procek pobiera 150mA i się gotuje (ale działa)....
zaczynam zabawe z mikrokontrolerami i przyznam ze troche krwi sobie napsulem. Posiadam uklad ATmega8L z podlaczonym kwarcem zewnetrznym 8MHz, i teraz niewiem czy udalo mi sie uruchomic ten kwarc czy nie (bo wiem ze od czestotliwosci zalezy skalowanie timerow licznikow i co za tym idze pwm o czym dalej), rysunek fuse.jpeg podaje wartosci fuse bitow....
Napisałem fragment programu sterowania mostkiem H na razie nie pokazuje błędów ale jeszcze chciałbym miec miekki start silnika DC, może delay wewnątrz pętli ? [syntax=arduino] //poczatek do produ //podział sygnału +/- 50 if(nThrottleIn>1550){ if (pwM1a>=255) pwM1a=255; pwM1a = map(nThrottleIn ,1550, 1995, 0,255); digitalWrite(in1a , HIGH); digitalWrite(in1b...
Proszę was o szybkie sprawdzenie czy ta konfiguracja pwm będzie działała poprawnie. $regfile = "m8def.dat" $crystal = 12000000 Baud = 19200 Config Portb = Output Portb = &B00000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Pwm1a = 100 Pwm1b = 200 Ps.Z jaka częstotliwością działa pwm w atmega8?
Kolego chyba za bardzo kombinujesz. Wystarczy coś takiego: [syntax=basic4gl]If Pomiar_adc > 470 And Pwm1a > 0 Then Decr Pwm1a If Pomiar_adc < 470 And Pwm1a < 255 Then Incr Pwm1a [/syntax]
http://obrazki.elektroda.pl/5214176000_1... Witam. Przedstawione rozwiązanie powstało z myślą o zdalnym (radiowym) sterowaniu modelem samochodu. Umożliwia płynne regulacje: kierunku (lewo/prawo) oraz prędkości ruchu (przód/tył). Rozkaz typu "włącz/wyłącz" pozwala np. uruchamiać sygnał dźwiękowy (klakson) lub włączać światła. Spośród...
Witam, Mam pewien problem z Rc5 w bascomie, chodzi mi o to, że instrukcje odpowiedzialne za rc5 są wykonywane tylko kilka razy a później, kaplica coś się zapycha:) i pilot nie działa. Cała sytuacja ma charakter nieliniowy tzn. że raz wykryje 3 naciśnięcia przycisku na pilocie a raz np. 5. Po zresetowaniu procka znowu RC5 działa przez parę cykli uP....
Sprawdz ten kod: $regfile = "m8def.dat" $crystal = 4000000 Pwm1a = 0 Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1 Do Pwm1a = 956 Start Timer1 Waitms 500 Pwm1a = 851 Waitms 500 Pwm1a = 758 Waitms 500 Pwm1a = 716 Waitms 500 Pwm1a = 638 Waitms 500 Pwm1a = 568 Waitms 500 Pwm1a = 506 Waitms 500 Wait 4 Loop End Jakiego...
Ustawiaj żądaną wartość i jak się nie będzie zgadzała z aktualna to samo się doreguluje ;) [syntax=vbnet]Dim Zadane_pwm As Byte, Aktualne_pwm As Byte On Timer0 Co_jakis_czas Do 'w celach prezentacji Zadane_pwm = 255 Wait 5 ' (przerwania przerywają Wait więc nie ma strachu) Zadane_pwm = 0 Wait 5 Loop Co_jakis_czas: Select case Aktualne_pwm Case Is <...
Witam, mam pewnie dla większości osób banalny problem. Postanowiłem wykonać lampkę RGB. Wykorzystałem mikrokontroler ATMEGA8 a program piszę w BASCOM'ie. Jasnością diody "zajmuje się" sprzętowe PWM (PWM1A). Poszczególne kolory (RGB) są sterowane multipleksowo. Program wygląda mniej więcej tak: Do Set Czerwony PWM1A = Red Waitms 1 Reset Czerwony Set...
Witam. Ja zrobiłem tak: [syntax=basic4gl]Declare Sub PWM_ Dim Zm_pwm As Byte Sub Pwm_ For Zm_pwm = 0 To 255 Step 1 Pwm1a = Zm_pwm Pwm1b = Zm_pwm Waitms 15 Next Zm_pwm Wait 4 For Zm_pwm = 255 To 0 Step -1 Pwm1a = Zm_pwm Pwm1b = Zm_pwm Waitms 15 Next Zm_pwm End Sub[/syntax]
Koledzy nie mogę sobie porzdzić z kodem. Chcę aby po naciśnięciu przycisku wartość zwiększyła się o 1 Dim I As Byte Do If Pinb.2 = 0 Then I + 1 If Pinb.3 = 0 Then I - 1 Pwm1a = I
a dlaczego programowy PWM ?? '51 ma chyba sprzetowy?? dla avr to będzie tak Config Timer1 = Pwm , Prescale = 8 , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up For Pwm1a = 0 To 256 Waitms 10 Next Pwm1a For Pwm1b = 0 To 256 Waitms 10 Next Pwm1b Do Loop
[syntax=vb]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Dim I As Byte Do For I = 1 To 255 Pwm1a = I Waitms 50 Next I For I = 255 To 1 Step -1 Pwm1a = I Waitms 50 Next I Loop End[/syntax] Teraz powinno działać więcej błędów nie widzę
...czy wogóle jest to możliwe żeby na ATMEGA8 uzyskać na wyjściach OC1A,OC1B i OC2 trzy regulowane niezależne przebiegi ... Jak najbardziej. PWM1a i PWM1b są ustawiane komendami Bascom'a. OC2 wymaga ustawienia rejestru "ręcznie" i ma aż cztery różne tryby pracy zależnie od taktowania i "przeładunku".
Witam. Napisałem prosty programik. Działa on tak że po włączeniu układ generuje impulsy o częstotliwości regulowanej przez ADC2. Teraz nie mam pojęcia jak zrobić aby przycisk podpięty na PD.0 włączał i wyłączał mi ten generator na wyjściu atmegi. [syntax=Basic4GL]$regfile = "m8def.dat" $crystal = 8000000 Config Portd = &B00000000 Config Portb = &B11111111...
$regfile = "m8def.dat" $crystal = 8000000 Config Pind.3 = Input Config Pind.4 = Input Config Portb.1 = Output Set Portd.3 Set Portd.4 Plus Alias Pind.3 Minus Alias Pind.4 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1 Enable Interrupts Dim Obroty As Byte Pwm1a = 255 Obroty = Pwm1a Do...
Hmm po dodaniu zmiennej Pr i zrobeniu działania Pr = Pwm1a / 2.55 wyświetla mi na LCD gdy mam 255 85 % w czym robię błąd. $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up Dim Pr As Integer Declare Sub Zwieksz 'Deklaracja procedury zwiększajšcej stan rejestru...
Nic nie zmienia pwm1a i b działają juz ok a tu dalej tak samo rosnie i spada nawet jesli wartosc adc(4)=0 dzieje sie tak samo czyli wystarczy ze dam więcej niz 0 a zmienia się w koło.
Postanowiłem wypróbować pwm i nie jest wcale takie trudne:) Napisałem program z rożnymi funkcjami, przełączam je przyciskiem ale nie raz muszę go przetrzymać aby się przełączyła i bywa tak że przełącza o kilka do przodu co koledzy polecacie aby wyeliminować te dwa problemy? Oto kod [syntax=basic4gl]'stroboskop by Pawel $crystal = 8000000 'Deklaracja...
Ja też podam przykład w BASCOMie: $regfile = "m8def.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 64 Dim I As Byte Pwm1a = 0 'wpisanie wartości początkowej 0 Do For I = 0 To 255 Pwm1a = I Waitms 10 Next I For I = 255 To 0 Step -1 Pwm1a = I Waitms 10 Next I Loop End Jak zmieniać wartość PWM? Pwm1a...
Witam Chciałbym sterować 2 silnikami DC z dwóch potencjometrów. Na początku mam program który przyspiesza silnik za pomocą PWM [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb = Output Portb = &B11111111 Config Portd = Input Portd = &B1111111 Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Pwm1a = 30...
[syntax=vbnet]'ja wykorzystałem pętle FOR NEXT 'oczywiście możesz dostosować do twoich ptrzeb 'po zwarciu pinu B4 o masy wykonuje się podprogram Pwm_ $regfile = "m8def.dat" $crystal = 8000000 Dim Zm_pwm As Byte Declare Sub Pwm_ Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up Enable Interrupts Ddrb...
Tak właściwie to testowałem PWMa na takim programie: $regfile = "m8def.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Config Portc = Input Portc = 255 Pwm1a = 0 Pwm1b = 0 Do If Pinc.0 = 0 Then Pwm1a = Pwm1a + 1 If Pinc.1 = 0 Then Pwm1b = Pwm1b + 1 Waitms 2 Pwm1a =...
U mnie było tak: Call Temp_kociol**odczyt z kotła Call Temp_woda**odczyt z bojlera R_temp = T_piec - T_woda**obliczanie różnicy temperatur Locate 1 , 12 Lcd "LATO" Locate 2 , 12 Lcd "H" ; Hist ; "/" ; Hist_pompy If R_temp >= Hist Then**jeżeli różnicz więkasza od histerezy to Set Pompa**tu włącza pompę Pwm1a = 200**i rozjaśnia wyświetlacz End If Z...
Wielkie dzięki za wszystkie rady i uwagi. Dzisiaj napisałem od nowa kod. 'KONFIGURACJA czujników dla czarnej lini $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Input Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja adc Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down...
Udało mi się już uruchomić układ, i odpowiednio wysłać dane. Jedyny pozostały problem to częstotliwość dla GLCK generowana z procka 31kHz. Powinna być w granicach 1-8MHz :/ Bo aktualnie diody migają strasznie. Podłączenie (zamiast schematu) : Gclk Alias Pwm1a 'Portb.1 Clk Alias Portd.2 Le Alias Portd.5 Sdi Alias Portd.6 Nie wiem po co do tego podłączenia...
czy to jest ten program gdzie didoda zmienia co chwile kolor ? tu jest ten kod co chcialem uzyc $regfile = "m8def.dat" $crystal = 8000000 config pinb.4 = input config pinb.2 = input config pinb.1 = output config timer1 = pwm , pwm = 8, compare a pwm = clear down , compare b pwm = disconnect , prescale = 64 dim i as byte s1 alias pinb.4 s2...
Witam mam problem z programem sterownika pwm na atmega8 to jest ten program: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.4 = Input Config Pinb.2 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare A Pwm = Disconnect , Prescale = 64 Dim I As Byte S1 Alias Pinb.4 S2 Alias Pinb.2 Set Portb.4...
W którym miejscu w poniższym kodzie mozna by było wstawić zmienną która by ograniczała zejście PWM powyżej zera a zdrugiej strony do 50% Do 'początek nieskończonej pętli If S1 = 0 Then 'jeśli przyciśnięty S1, to Waitms 25 'opóźnienie dla eliminacji drgań 'styków If S1 = 0 Then 'sprawdzenie ponownie, czy 'przycisk S1 dalej naciśnięty, 'jeśli tak, to...
Napisałem sobie program lecz jak rozjaśniam to bardzo duzo razy trzeba klikać przycisk aby na maxa rozjaśnic lub ściemnić. Chciał bym aby tak rozjaśniało do maxa przy np 10 kliknięciach , takie 10 stopni rozjaśnie. Prosze o pomoc jak mam zmienić moj kod. Wsad: Config Pinb.1 = Output Config Rc5 = Pind.2 Dioda Alias Portd.6 Cursor Off Cls Config Timer1...
ATMega ma trzy wyjścia PWM, rozumiem że są to: OC1A, OC1B oraz OC2, proszę o pomoc w skonfigurowaniu timera czy to może tak wyglądać? config timer1=pwm, pwm=8, compare a pwm=clear down, compare b pwm = clear down, prescale=1 i jeszce jeżeli chodzi o pętle, czy przypisanie wartości realizuje się następujaco? przykladowo: pwm1a=200 pwm1b=100 ocr2=10 jeżeli...
Witam. Może i głupio, ale z ciekawości napisałem programik, którego jedynym zadaniem jest przepuszczanie podanego na wejście ADC dzwięku przez mikroprocesor atmega8 tak, że wychodzi na PWM1a. W sumie to nawet poniekąd mi się to udało, dzwięk przechodził, ale wyjściowa jakość nie była zadowalająca. Większość paramerów w programie dobrałem doświadczalnie......
Witam, $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pind.1 = Output Config Timer2 = Timer , Prescale = 128 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 8 Cls Cursor Off Portd.0 = 1 Portd.1 = 0 Set Portd.4 On Timer2 Czas1s Dim Licz8ms As Byte Dim Wartoscpwm As...
schemat w załączniku [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Portd = Output Config Portb = Output Const Granica = 900 Silnik_lewy_a Alias Portd.3 Silnik_lewy_b Alias...
Witam robie aktualnie oświetlenie do szopki i napotkałem mały problem: $regfile = "m8def.dat" $crystal = 8000000 Config Pind.5 = Output Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Dim I As Byte Do For I = 1 To 255 Pwm1a = I Waitms 5 Next I For I = 255 To 1 Step -1 Pwm1a = I Waitms 5 Next I...
Witam. Po przeczytaniu kilku postów na forum napisałem program żeby sterować jasnością dwóch diód led. Jednak program nie działa , gdy podaję stan niski na wejścia nic się nie dzieje. Czy dobrze skonfigurowałem PWM? Oto kod w bascom: $regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Input Config Pind.1 = Input Config Pind.2 = Input...
To może książkowy dla ATMEGA8 w BASCOMIE, nawet dla 2 LED, $REGFILE= "M8DEF.DAT" $crystal = 8000000 Config Pinb.1=Output Config Pinb.2=Output Config Timer1 = Pwm , Pwm =8 Compare A Pwm = Clear Up, Compare B Pwm = Clear Down, Prescale = 1 Dim I As Byte Do For I = 1 to 255 Pwm1a = I Pwm1b = I Waitms 4 Next I For I = 255 to 0 Step -1 Pwm1a = I Pwm1b =...
Uruchomiło :D Szkoda tylko, że nic z tego nie rozumiem. Co prawda jest na odwrót niż w ATmega8 (tam 0-dioda nie świeci, tutaj 0 - dioda świeci), pozmieniałem trochę kod i jest tak samo jak wcześniej na ATmega. Kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect...
Poczytałem trochę o PWM lecz nie zrozumiałem za wiele oto przykładowy sygnały pwm są generowane na pb.1 i pb.2 i są to odpowiednio PWM1a i PWM1b. Ogólnie pwm'a konfigurujemy tak: Kod: Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down pwm 8 bitowy- czyli wartości od 0 od 255 następnie po wszystkich...
Pozwoliłem sobie napisać do osoby która ożywiła układ i w odp mam Podłączamy ADC atmegi bezpośrednio do prawego lub lewego kanału (sygnału audio oczywiście, nie głośnika). Najlepiej przez potencjometr, mamy wtedy regulację. Masy układów łączymy ze sobą. Po nowym roku oczywiście sprawdze :)) Dodano po 5 idąc dalej:) wysterowanie PWM1a i PWM1b czyli płynne...
Witam Potrzebuje wykonać następujace zadanie. Mam impulsy (ok 1kHz) które wprowadzam na wejście INT0 Chciałbym aby na te impulsy została nałożona modulacja dla przykładu np: 36kHz Wyjście takiego zmodulowanego sygnału to PB1, OC1A w Atmega8 Wykonałem prosty program testowy który zamieszczam poniżej Program działa ale niestety często po zakończeniu transmisji...
Witam, Z góry przepraszam za lamerskie pytanie, to moje początki, ale od trzech dni szukam w necie jakiegoś przykładu w Bascomie i nic. Mam atmega8-16PI, kwarc 8MHz Potrzebuję wykonać generator impulsów (prostokąt) o regulowanych częstotliwościach, 1-20Hz, oraz regulowanym czasie trwania impulsów 0,1-3ms. Nie wiem jak się do tego zabrać. Załużmy że...
witam. chcialbym skorzystac z pwma i zrobic przebieg sinusoidalny. napisalem nastepujacy program. sinusik jest bardzo ladny ale maxymalna jego czestotliwosc to ok 50Hz. Do For Kat = 0 To 360 Step 2 Rad = Deg2rad(kat) Wartosc = Sin(rad) ' -1 - 1 Wartosc = Wartosc + 1 ' 0 - 2 Wartosc = Wartosc * 128 '0 - 256 Pwm1a = wartosc ' Waitus 2 Next Loop wyglada...
pwm1a attiny pwm1a alias atmega16 pwm1a
ipconfig gigabit ethernet controller mechanizm zamykania szyby gorąca matryca monitora
Symbol budzika na liczniku DAF - co oznacza? Migające światła pozycyjne i kierunkowskazy - przyczyny