bb5 Napisano Maj 27, 2010 Udostępnij Napisano Maj 27, 2010 Witam! Mam problem z programem w BASCOM: Ddrd = &B00111111 Portd = &B00011110 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64 Start Timer1 I po takiej konfiguracji robię coś takiego: Pwm1a = 255 I nie działa mi PWM. Co robię nie tak? Cytuj Link do komentarza Share on other sites More sharing options...
Bobby Maj 27, 2010 Udostępnij Maj 27, 2010 Wydaje mi się, że enable interrupts byłoby wskazane. Cytuj Link do komentarza Share on other sites More sharing options...
KD93 Maj 27, 2010 Udostępnij Maj 27, 2010 Do PWM'a nie trzeba enable interrupts. Spróbuj zmniejszyć prescaler na 1 (Prescale = 1). Cytuj Link do komentarza Share on other sites More sharing options...
bb5 Maj 27, 2010 Autor tematu Udostępnij Maj 27, 2010 Niestety ani jedno, ani drugie nie pomogło. Może w innym miejscu w kodzie jest coś nie tak? Połączenia: Kod $regfile = "m32def.dat" $crystal = 8000000 Led1 Alias Portc.1 Led2 Alias Portc.2 S1 Alias Pinb.0 S2 Alias Pinb.1 S3 Alias Pinb.2 Lp Alias Pinc.7 Pp Alias Pinc.6 Lt Alias Pinc.4 Pt Alias Pinc.5 A1 Alias Portd.0 A2 Alias Portd.1 B1 Alias Portd.2 B2 Alias Portd.3 Ena Alias Portd.4 Enb Alias Portd.5 Ddra = &B00000000 Ddrd = &B00111111 Ddrb = &B00000000 Ddrc = &B00000110 Portd = &B00011110 Porta = &B00000000 Portc = &B00000000 Portb = &B11111111 Declare Function Sharp_odczyt(byval Kanal As Byte) As Word Declare Sub Silniki_prz(byval Bieg As Byte) Declare Sub Silniki_tyl(byval Bieg As Byte) Declare Sub Silniki_l Declare Sub Silniki_r Declare Sub Silniki_stop Declare Sub Szukaj Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Start Timer1 Dim Linia_lt As Byte 'Lt itd. oznacza lewy tylny Dim Linia_pt As Byte Dim Linia_pp As Byte 'Prawy przedni Dim Linia_lp As Byte Dim Namierzony_sharp1 As Bit Dim Namierzony_sharp2 As Bit Dim Stan As Byte Dim Kolor As Bit Stan = 0 Led1 = 1 Wait 1 Led1 = 0 Bitwait S1 , Reset Kolor = 1 Wait 5 Led1 = 1 Do 'Obsługa dalmierzy Sharp If Sharp_odczyt(0) > 145 Then Call Silniki_prz(255) Else Call Szukaj End If If Sharp_odczyt(1) > 145 Then Call Silniki_tyl(255) Else Call Szukaj End If 'Obsługa czujników lini CNY70 If Lp = Kolor Then Linia_lp = 4 Else Linia_lp = 0 End If If Lt = Kolor Then Linia_lt = 8 Else Linia_lt = 0 End If If Pp = Kolor Then Linia_pp = 2 Else Linia_pp = 0 End If If Pt = Kolor Then Linia_pt = 1 Else Linia_pt = 0 End If 'Przeliczenie odczytu czujników na wartość liczbową Stan = Stan + Linia_pt Stan = Stan + Linia_lt Stan = Stan + Linia_pp Stan = Stan + Linia_lp 'Wybór reakcji robota według wskazań czujników Select Case Stan Case 0: Call Szukaj Case 1: Call Silniki_l Case 2: Call Silniki_r Case 3: Call Silniki_l Case 4: Call Silniki_l Case 6: Call Silniki_tyl(255) Case 8: Call Silniki_r Case 9: Call Silniki_prz(255) Case 12: Call Silniki_r Case 15: Call Silniki_stop Case Else: Call Szukaj End Select Loop Sub Szukaj Call Silniki_r Wait 1 Call Silniki_l End Sub Function Sharp_odczyt(byval Kanal As Byte) As Word Sharp_odczyt = Getadc(kanal) End Function Sub Silniki_prz(byval Bieg As Byte) A1 = 1 A2 = 0 B1 = 1 B2 = 0 Pwm1a = Bieg Pwm1b = Bieg End Sub Sub Silniki_tyl(byval Bieg As Byte) A1 = 0 A2 = 1 B1 = 0 B2 = 1 Pwm1a = Bieg Pwm1b = Bieg End Sub Sub Silniki_l A1 = 0 A2 = 1 B1 = 1 B2 = 0 Pwm1a = 128 Pwm1b = 128 End Sub Sub Silniki_r A1 = 1 A2 = 0 B1 = 0 B2 = 1 Pwm1a = 128 Pwm1b = 128 End Sub Sub Silniki_stop A1 = 0 A2 = 0 B1 = 0 B2 = 0 End Sub Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
mskojon Maj 28, 2010 Udostępnij Maj 28, 2010 Zacznijmy od tego, czy działa Ci wszystko bez PWM'a? Cytuj Link do komentarza Share on other sites More sharing options...
bb5 Maj 28, 2010 Autor tematu Udostępnij Maj 28, 2010 Witam! Od strony elektroniki - tak. Na fototranzystorach jest napięcie ok. 1V, Sharpy również działają. Jeżeli podłączam wejścia pwm w L293d to jeździ, nie jestem tylko pewien czy dobrze (nad czujnikami ciągle pracuję). Cytuj Link do komentarza Share on other sites More sharing options...
Luko Maj 28, 2010 Udostępnij Maj 28, 2010 Mówiąc szczerze tak patrzyłem na schemat, nie lepiej te 4 CNY70 wrzucić na ADC, które masz wolne, do tego miałbyś możliwość programowej kalibracji robota w zależności od podłoża. Mniejsza płytka bo nie musiałbyś stosować komparatora. Cytuj Link do komentarza Share on other sites More sharing options...
bb5 Maj 28, 2010 Autor tematu Udostępnij Maj 28, 2010 Witam! Płytka już zrobiona (dość problematyczna) i dopasowana do obudowy. Teraz wziąłem się za napisanie programu i na razie same problemy (jak wyżej). Użyłem LM324 tylko dla tego, że dopiero uczę się BASCOM. Cytuj Link do komentarza Share on other sites More sharing options...
Luko Maj 28, 2010 Udostępnij Maj 28, 2010 Nom, tylko że bez tego LM324 byłaby prostsza, a obsługa ADC wcale nie jest taka trudna, a tym bardziej napisanie auto kalibracji. Według mnie troszkę kijowo to rozwiązane, można było trochę prościej to zrobić. Cytuj Link do komentarza Share on other sites More sharing options...
bb5 Maj 28, 2010 Autor tematu Udostępnij Maj 28, 2010 Witam! Również nad tym myślałem, ale doszedłem do wniosku, że z moją znajomością BASCOMA użyję czegoś na wzór https://www.forbot.pl/forum/topics7/modul-czujnikow-na-ukladzie-lm324-vt854.htm . Na razie chciałbym tylko go uruchomić (tyle tylko, że trochę mi się spieszy), a dopiero potem myśleć o jakiś usprawnieniach i modyfikacjach. Jak bym chciał podłączyć do ATmegi to tak samo jak do lm324? Rozważam możliwość wywalenia LM324 (jest w podstawce) i podłączenia kabelkowego 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!