Witam !!
Mam taki problem chciałbym napisać program(programóje w Bascom właściwie to się ucze), który zliczałby ilość załączenia przycisku1 i przycisku2
(czujnik lewy, czujnik prawy)
i zliczanie ile czsu na
Portb.0 = 1 'lewy silnik przód
Portb.1 = 0
Portb.2 = 1 'prawy silnik przód
Portb.3 = 0
i ile czasu
Portb.0 = 0 'lewy silnik tył
Portb.1 = 1
Portb.2 = 0 'prawy silnik przód
Portb.3 = 1
I chodzi o to żeby wyświetlało to na "Terminal Emulator"
Procesor który używam to Attiny2313 (2kb flash)
Może to być tak, że nie dopisuje tego do pamięci flash tylko do RAM (nie jestem pewien czy to możliwe)
i wtedy ta pamięć trzymała by te informacje do wyłączenia zasilania, ale mi to nie przeszkadza
Miało by to na Terminal Emulator wyglądac mniej więcej tak:
*******Robot***********
Czujnik Lewy ....(i tu ilość załączenia)
Czujnik Prawy ....(i tu ilość załączenia)
-------------------------------------------
Czas jazdy do przodu ....(i tu czas jazdy w przód)
Czas jazdy do tyłu ....(i tu czas jazdy w przód)
**************************************************
I to koniec nie wiem czy jest to możliwe z tym czasem jeśli nei to dobrze by było gdyby chociarz czas
włączenia pokazywało.
Nazrazie mój program wygląda tak(ale to tylko jazda w przód, tył, lewo i prawo, bez Terminal Emulator):
Config Portb = &B11111111 'Wszystkie jako wyjścia
Portb = &B11111111 'Wszędzie stan spoczynkowy 1
Config Portd = &B11111000 'Trzy najmłodsze jako wejścia
Portd = &B11111111
Do
Portb.0 = 1 'Silnik lewy na przód ON
Portb.1 = 0
Portb.2 = 1 'Silnik prawy na przód ON
Portb.3 = 0
If Portd.0 = 0 Then 'Jeśli czujnik lewy wykryje przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 1 'silnik lewy na przód ON
Portb.1 = 0
Portb.2 = 0 'silnik prawy w tył ON
Portb.3 = 1
Wait 2
End If
If Portd.1 = 0 Then 'Jeśli czujnik prawy wykryje przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 0 'silnik lewy w tył ON
Portb.1 = 1
Portb.2 = 1 'silnik prawy na przód ON
Portb.3 = 0
Wait 2
End If
If Portd.1 = 0 And Portd.0 = 0 Then 'Jeśli oby dwa czujniki wykryja przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 0 'silnik lewy w tył ON
Portb.1 = 1
Portb.2 = 1 'silnik prawy na przód ON
Portb.3 = 0
Wait 4
End If
Loop 'Koniec pętli nie skończonej
End 'koniec programu
Mam taki problem chciałbym napisać program(programóje w Bascom właściwie to się ucze), który zliczałby ilość załączenia przycisku1 i przycisku2
(czujnik lewy, czujnik prawy)
i zliczanie ile czsu na
Portb.0 = 1 'lewy silnik przód
Portb.1 = 0
Portb.2 = 1 'prawy silnik przód
Portb.3 = 0
i ile czasu
Portb.0 = 0 'lewy silnik tył
Portb.1 = 1
Portb.2 = 0 'prawy silnik przód
Portb.3 = 1
I chodzi o to żeby wyświetlało to na "Terminal Emulator"
Procesor który używam to Attiny2313 (2kb flash)
Może to być tak, że nie dopisuje tego do pamięci flash tylko do RAM (nie jestem pewien czy to możliwe)
i wtedy ta pamięć trzymała by te informacje do wyłączenia zasilania, ale mi to nie przeszkadza
Miało by to na Terminal Emulator wyglądac mniej więcej tak:
*******Robot***********
Czujnik Lewy ....(i tu ilość załączenia)
Czujnik Prawy ....(i tu ilość załączenia)
-------------------------------------------
Czas jazdy do przodu ....(i tu czas jazdy w przód)
Czas jazdy do tyłu ....(i tu czas jazdy w przód)
**************************************************
I to koniec nie wiem czy jest to możliwe z tym czasem jeśli nei to dobrze by było gdyby chociarz czas
włączenia pokazywało.
Nazrazie mój program wygląda tak(ale to tylko jazda w przód, tył, lewo i prawo, bez Terminal Emulator):
Config Portb = &B11111111 'Wszystkie jako wyjścia
Portb = &B11111111 'Wszędzie stan spoczynkowy 1
Config Portd = &B11111000 'Trzy najmłodsze jako wejścia
Portd = &B11111111
Do
Portb.0 = 1 'Silnik lewy na przód ON
Portb.1 = 0
Portb.2 = 1 'Silnik prawy na przód ON
Portb.3 = 0
If Portd.0 = 0 Then 'Jeśli czujnik lewy wykryje przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 1 'silnik lewy na przód ON
Portb.1 = 0
Portb.2 = 0 'silnik prawy w tył ON
Portb.3 = 1
Wait 2
End If
If Portd.1 = 0 Then 'Jeśli czujnik prawy wykryje przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 0 'silnik lewy w tył ON
Portb.1 = 1
Portb.2 = 1 'silnik prawy na przód ON
Portb.3 = 0
Wait 2
End If
If Portd.1 = 0 And Portd.0 = 0 Then 'Jeśli oby dwa czujniki wykryja przeszkode
Portb.0 = 0 'silnik lewy OFF
Portb.1 = 0
Portb.2 = 0 'silnik prawy OFF
Portb.3 = 0
Wait 1 'Stój 1 sekunde
Portb.0 = 0 'silnik lewy do tyłu ON
Portb.1 = 1
Portb.2 = 0 'silnik prawy do tyłu ON
Portb.3 = 1
Wait 2 'jedź w tył 2 sekundy
Portb.0 = 0 'silnik lewy w tył ON
Portb.1 = 1
Portb.2 = 1 'silnik prawy na przód ON
Portb.3 = 0
Wait 4
End If
Loop 'Koniec pętli nie skończonej
End 'koniec programu
Moderowany przez McRancor:Przeniesiono do właściwego działu