Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Sterownik rotora - Bascom
SQ2EER Offline
Jacek sk
***

Liczba postów: 182
Dołączył: 17-06-2009
Post: #20
RE: Sterownik rotora - Bascom
Witam - ano właśnie chodzi o wersje dla Polski - dzięki za chęć pomocy - hi na pewno skorzystam - bo jak pisałem stawiam pierwsze kroki w pisaniu programów - przez święta pewnie będzie więcej czasu na nasze hobby - pozdrawiam Jacek.

24.04.2011

Witam - coś się ruszyło Blush w pisaniu:
Kod:
$regfile = "m644pdef.dat"                                   'informuje kompilator o typie mikrokontrolera
'$sim
$crystal = 16000000                                         'informuje kompilator
                                                            'o częstotliwości oscylatora                                                            'taktującego mikrokontroler
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7       'porty mikrokontrolera, do których dołączono wyświetlacz LCD

Config Portd = &B00000111 : Portd = &B11111111
Config Portb = &B11111111 : Portb = &B11110111

Config Adc = Single , Prescaler = Auto , Reference = Avcc   'konfiguracja wewnętrznego przetwornika A/C

Deflcdchar 1 , 31 , 31 , 4 , 4 , 4 , 4 , 4 , 4              ' replace ? with number (0-7)
Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32        ' replace ? with number (0-7)
Deflcdchar 3 , 31 , 31 , 4 , 4 , 4 , 32 , 32 , 32           ' replace ? with number (0-7)
Deflcdchar 4 , 4 , 4 , 4 , 4 , 14 , 14 , 31 , 31            ' replace ? with number (0-7)
Deflcdchar 5 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32        ' replace ? with number (0-7)
Deflcdchar 6 , 2 , 6 , 15 , 31 , 15 , 6 , 2 , 32            ' replace ? with number (0-7)
Deflcdchar 7 , 8 , 12 , 30 , 31 , 30 , 12 , 8 , 32          ' replace ? with number (0-7)
Deflcdchar 8 , 32 , 32 , 31 , 31 , 31 , 32 , 32 , 32        ' replace ? with number (0-7)

Up Alias Pind.7                                             'góra
Down Alias Pind.6                                           'dół
Setup Alias Pind.5                                          'wejście/zatwierdzenie

Dim Ekran As Byte
Dim Pozycja As Byte
Dim Pozycja1 As Byte
Dim Pomoc1 As Byte
Dim Pomoc2 As Byte
Dim Wart_ac1 As Word                                        'zmienna na wartość odczytaną z przetwornika
Dim Stopnie As Single                                       'zmienna stopni odczyt z przetwornika 'Dim V1 As Single                                                            'podzielony przez 2.841
Dim Azym_odcz As Word                                       'zmienna odczytanego azymutu'Dim V2 As Word
Dim Azym_zad As Word

Start Adc                                                   'uruchamia wbudowany przetwornik

Wart_ac1 = Getadc(0)                                        'odczytanie wartości z wejści ADC0 mikrokontrolera i przypisanie do zmiennej Wart_ac1
Stopnie = Wart_ac1 / 2.841                                  'zamiana wartości odczytanej z przetwornika'stopnie = Wart_ac1 / 2.841                                       'zamiana odczytanej wartości z A/C na stopnie azymutu
                                                            'na stopnie zaymutu
Azym_odcz = Int(stopnie)

Ekran = 1
Pozycja = 1
Pomoc1 = 1
Pomoc2 = 1

Cursor Off
Cls
Wait 1
Locate 1 , 4 : Lcd "STEROWNIK"
Waitms 500
Locate 2 , 6 : Lcd "ROTORA"
Waitms 500
Locate 3 , 4 : Lcd "By  SQ2EER"
Waitms 500
Locate 4 , 5 : Lcd "Wer. 1.0"
Wait 1
Cls

Azym_zad = Azym_odcz

Do

If Up = 0 Then
   Bitwait Up , Set
   Ekran = Ekran + 1
   If Ekran => 4 Then Ekran = 3
End If

If Down = 0 Then
   Bitwait Down , Set
   Ekran = Ekran - 1
   If Ekran = 0 Or Ekran => 4 Then Ekran = 1
End If
'Locate 4 , 1 : Lcd Ekran


Select Case Ekran

'Case 0:

Case 1:

Cls
Do

Wart_ac1 = Getadc(0)                                        'odczytanie wartości z wejści ADC0 mikrokontrolera i przypisanie do zmiennej Wart_ac1
Stopnie = Wart_ac1 / 2.841                                  'zamiana wartości odczytanej z przetwornika'stopnie = Wart_ac1 / 2.841                                       'zamiana odczytanej wartości z A/C na stopnie azymutu
                                                            'na stopnie zaymutu
Azym_odcz = Int(stopnie)

Locate 1 , 6 : Lcd "Azymut"
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)
Locate 3 , 2 : Lcd Azym_odcz ; Chr(5) ; "  "
Locate 3 , 9 : Lcd Chr(4)
Locate 3 , 12 : Lcd Azym_zad ; Chr(5) ; "  "


If Up = 0 Then
   Bitwait Up , Set
   Azym_zad = Azym_zad + 1
   If Azym_zad => 360 Then Azym_zad = 360
End If
If Down = 0 Then
   Bitwait Down , Set
   Azym_zad = Azym_zad - 1
   If Azym_zad = 0 Or Azym_zad => 360 Then Azym_zad = 0
End If
If Setup = 0 Then
   Bitwait Setup , Set
   Pomoc1 = Pomoc1 + 1
   If Pomoc1 => 3 Then Pomoc1 = 2
End If

Loop Until Pomoc1 = 2 : Ekran = 2


Case 2:
Cls
Do
Locate 2 , 1 : Lcd "222"
Locate 3 , 1 : Lcd Pomoc1
Locate 4 , 1 : Lcd Pozycja1
If Up = 0 Then
   Bitwait Up , Set
   Pozycja1 = Pozycja1 + 1
   If Pozycja1 => 4 Then Pozycja1 = 3
End If
If Down = 0 Then
   Bitwait Down , Set
   Pozycja1 = Pozycja1 - 1
   If Pozycja1 = 0 Or Pozycja1 => 4 Then Pozycja1 = 1
End If
If Setup = 0 Then
   Bitwait Setup , Set
   Pomoc1 = Pomoc1 + 1
   If Pomoc1 => 4 Then Pomoc1 = 3
End If

Loop Until Pomoc1 = 3 : Ekran = 3


Case 3:
Cls
Do
Locate 3 , 1 : Lcd "333"
Locate 1 , 1 : Lcd Pomoc1
Locate 4 , 5 : Lcd Pozycja
If Up = 0 Then
   Bitwait Up , Set
   Pozycja = Pozycja + 1
   If Pozycja => 9 Then Pozycja = 9
End If
If Down = 0 Then
   Bitwait Down , Set
   Pozycja = Pozycja - 1
   If Pozycja = 0 Or Pozycja => 10 Then Pozycja = 0
End If
If Setup = 0 Then
   Bitwait Setup , Set
   Pomoc1 = Pomoc1 + 1
   If Pomoc1 => 5 Then Pomoc1 = 4
End If

Loop Until Pomoc1 = 4 : Ekran = 1

End Select

Loop
End

to tak dla testu - pewnie źle napisane ale działa wchodzenie i przechodzenie przez poszczególne ekrany ( ustawienia) - pozdrawiam Jacek.
(Ten post był ostatnio modyfikowany: 24-04-2011 0:18 przez SQ2EER.)
21-04-2011 23:44
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
Sterownik rotora - Bascom - SQ2EER - 27-03-2011, 21:42
RE: Sterownik rotora - Bascom - SQ2EER - 21-04-2011 23:44

Skocz do:


Użytkownicy przeglądający ten wątek: 3 gości