Chciał bym żeby ktoś mi pomógł napisać program ma mniej więcej wyglądać to tak:
Po włączeniu na ekraniku 40x2 (tylko taki mam akurat)
Pojawi się napis
Wybierz opcję:
1. Line follower 2. Minisumo 3.Rc5
naciskam przycisk 1 i na ekraniku pojawia się:
Wybrałeś obcję: line follower
(ładowanie takie po kolei po jednym kwadracie) .
jak się załadują wszystkie kwadraty toi będzie pisać
Opcja 1 linefollower
Naciśnij 4. aby wrócić do menu:
w tym czasie normalnie robot działa oczywiście ale jak nacisnę 4 to powróci do stanu na początku. Czyli opcja 1 2 i 3
jak nacisnę 2 to pisze Wybrałeś opcję 2. mini sumo itd!
Narazie chciał bym to na atmega8 przetestować sam program ale całość będzie na Atmega16
Kod do line follower (Autorem jest piotreks-89 )
nie wiem czy komuś to będzie potrzebne ale konf. wyświetlacza to
Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić. - arnoldziq
Dodano po 3 [godziny] 20 [minuty]:
początek kodu
Po włączeniu na ekraniku 40x2 (tylko taki mam akurat)
Pojawi się napis
Wybierz opcję:
1. Line follower 2. Minisumo 3.Rc5
naciskam przycisk 1 i na ekraniku pojawia się:
Wybrałeś obcję: line follower
(ładowanie takie po kolei po jednym kwadracie) .
jak się załadują wszystkie kwadraty toi będzie pisać
Opcja 1 linefollower
Naciśnij 4. aby wrócić do menu:
w tym czasie normalnie robot działa oczywiście ale jak nacisnę 4 to powróci do stanu na początku. Czyli opcja 1 2 i 3
jak nacisnę 2 to pisze Wybrałeś opcję 2. mini sumo itd!
Narazie chciał bym to na atmega8 przetestować sam program ale całość będzie na Atmega16
Kod do line follower (Autorem jest piotreks-89 )
''''''''''''''''''''''''Konfiguracja''''''''''''''''''''''''
$regfile = "m8def.dat"
$crystal = 12000000
'Konfiguracja przetwornika analog-cyfra (ADC)
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
'Konfiguracja portów
Config Portd = Output
Config Portb = Output
'Granica reagowania na linię
Const Granica = 400
'Deklaracja nazw
Led2 Alias Portd.7
Led3 Alias Portd.6
Led4 Alias Portd.5
Led5 Alias Portd.4
Silnik_lewy_a Alias Portd.3
Silnik_lewy_b Alias Portd.2
Silnik_prawy_b Alias Portd.0
Silnik_prawy_a Alias Portd.1
'Deklaracje zmiennych
Dim Czujnik_lewy As Word
Dim Czujnik_srodkowy_lewy As Word
Dim Czujnik_srodkowy_prawy As Word
Dim Czujnik_prawy As Word
Start Adc
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b
'Silniki włączone
Pwm1a = 255
Pwm1b = 255
''''''''''''''''''''''''Pętla główna''''''''''''''''''''''''
Do
'Każdowazowa konfiguracja czujników
Czujnik_lewy = Getadc(2)
Czujnik_srodkowy_lewy = Getadc(3)
Czujnik_srodkowy_prawy = Getadc(4)
Czujnik_prawy = Getadc(5)
If Czujnik_srodkowy_lewy > Granica Then
Pwm1a = 255
Pwm1b = 255
Led3 = 1
If Czujnik_srodkowy_prawy > Granica Then
Pwm1a = 255
Pwm1b = 255
Led4 = 1
Elseif Czujnik_lewy > Granica Then
Pwm1a = 0
Pwm1b = 255
Led2 = 1
Elseif Czujnik_prawy > Granica Then
Pwm1a = 255
Pwm1b = 0
Led5 = 1
Else
Pwm1a = 255
Pwm1b = 255
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0
End If
End If
Loop
Endnie wiem czy komuś to będzie potrzebne ale konf. wyświetlacza to
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. Proszę to poprawić. - arnoldziq
Dodano po 3 [godziny] 20 [minuty]:
początek kodu
$regfile = "m8def.dat"
$crystal = 100000
Config Lcd = 40 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
config portd=input
Cls
Dim I As Byte
Cls
Lcd ".WYBIERZ OBCJE:" ; Chr(0) ; Chr(1) ;
Cursor Off
Home Lower
Lcd "1. LINE 2.SUMO 3.RC5" ; Chr(0) ; Chr(1) ;
Do
For I = 1 To 21
Shiftlcd Right
Waitms 2000
Next I
For I = 1 To 21
Shiftlcd Left
Waitms 2000
Next I
Do
if pinb.0=1 then 'jeżeli przycisk 1 wciśnięty
'chciał bym że jak nacisne 1 to pokaze sie napis i zacznie działać jak to rozwiązać?
Loop
End If
Loop