RE: Bascom AVR - SP3SWJ - 25-10-2010 22:05
do producenta... maila napisz
a nie dzwoń po sprzedawcach :-)
RE: Bascom AVR - SQ2EER - 25-10-2010 22:28
Witam - no tak Jarku masz rację tylko że ja nie znam angielskiego - i tu jest problem - 73 Jacek.
RE: Bascom AVR - SP3SWJ - 27-10-2010 1:49
Newsy...
BASCOM-8051 2.0.14.0 DEMO available
BASCOM-8051 version 2.0.14.0 is now available also as DEMO in Download section.
This version extends waitms with waitmsE, the sound statement and range of SW UART.
RE: Bascom AVR - SQ2EER - 18-03-2011 21:39
Witam czytających - mam pytanie czy w Bascom AVR mozna przesuwać tekst w jeden z wierszy np. w LCD 16 x 4 - pierwszy wiersz ( lewo , prawo ) reszta stoi w miejscu - czy jedynie wszystkie cztery wiersze naraz - pozdrawiam 73 Jacek.
RE: Bascom AVR - SP3SWJ - 18-03-2011 22:02
- czy masz na myśli scrola po PIXLU... czy jak... ??
- czy masz namyśli funkcje standardowego drivera - czy ogólne pytanie
napewno można .. trzeba trochę na około trzeb asie pomęczyć - ale napewno można..
można nawet napisac własny sterownik LCD z dodatkowymi funkcjami..
Czy sprzwdziłeś opisy komend sterujących LCD na co pozwalają ???
Ja ostatnio od zera pisałem sterownik kolorowego LCD do BASCOM 320x240 z odwracaniem okranów, pisaniem bokiem i obsługą ekranu dotykowego.
Mozna DUŻO - ale jakim nakładem pracy :-)
RE: Bascom AVR - SQ2EER - 18-03-2011 22:22
Witam - Jarku chodzi mi o standardowe komendy Bascoma - shiftlcd (left , right) - przesuwanie tekstu ( po jednym znaku w lewo, prawo ) w jednej linijce - pozdrawiam Jacek.
RE: Bascom AVR - SQ9MDD - 18-03-2011 22:31
...shiftlcd ciagnie cały wiersz jesli chcesz zrobić animacje z literkami musisz czyścić lcd i printować literki co jeden piksel obok. Malo efektywna metoda.
RE: Bascom AVR - SQ2EER - 18-03-2011 23:03
Witam - ok może być cały wiersz tylko że część tego 1 wiersza pojawia mi się w 3 linii
Kod:
'************* Konfiguracja uC *****************
'***********************************************
$regfile = "m644pdef.dat"
$crystal = 16000000
Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.4 , Db6 = Porta.3 , Db7 = Porta.2 , E = Porta.0 , Rs = Porta.1 'tu zmien na odpowiednie piny
Config Lcd = 16 * 4
Deflcdchar 1 , 31 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ' replace ? with number (0-7)
Deflcdchar 2 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 3 , 31 , 4 , 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)
Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Input
Set Portd.0
Set Portd.1
Set Portd.2
Dim A As Byte
Cursor Off
Cls
Do
For A = 1 To 10
Shiftlcd Right
Waitms 250
Next
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)
Lowerline
Lcd " 261 " ; Chr(4) ; " 305 "
Thirdline
Lcd "Line 3"
Fourthline
Lcd "Line 4"
Home Third
Home Fourth
Loop
2, 3 oraz 4 też się przesuwają a ma tylko 1 - w lewo lub prawo - pozdrawiam Jacek.
RE: Bascom AVR - SP3SWJ - 18-03-2011 23:05
... a do czego to mabyc - do jakiego urzadzenia ??? czy po prostu edukacyjnie...
Ja bym ci polecił LCD graficzny - taki jak używam w MAX4 MAX6 - nawet niedrogi a duzo więcej możesz...
RE: Bascom AVR - SQ2EER - 18-03-2011 23:15
hi efekt obracania się rotora - czyli w drugiej linijce od lewej:
wskazanie aktualnego azymutu (261) w środku znacznik z prawej zadany azymut (305), a w pierwszej właśnie przesuwanie się stopni jak obraca się rotor - chcę spróbować napisać program do sterownika rotora pozdrawiam Jacek.
Witam - napisałem taki programik z odczytem napięcia z potencjometru przez przetwornik ale nie mogę sobie poradzić z zaokrągleniem zmiennej "azym_zad" do wartości całkowitej - wychodzi mi z ułamkiem - co robie źle - mogę prosić o podpowiedź.
program:
Kod:
'odczyt testowy ADC Atmega 644p płyta testowa EvB 4.3 zamiana odczytanej
'wartości z A/C na stopnie azymutu
'Program obsługi wbudowanego w mikrokontroler
'10-bitowego przetwornika A/C
$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 Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja wewnętrznego przetwornika A/C
Config Pind.0 = Input
Config Pind.1 = Input
Config Portb.0 = Output
Config Portb.1 = Output
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)
'Zmienne
Dim Wart_ac1 As Word 'zmienna na wartość odczytaną z przetwornika
Dim V1 As Single 'zmienna przechowująca obliczon
Dim Azym_odcz As String * 3 'zmienna, do której będzie wpisywany odczytany azymut
Dim Azym_zad As Single 'zmienna, do której będzie wpisywany zadany azymut
Declare Sub Lewo
Declare Sub Prawo
Declare Sub Kierunek
Set Pind.0
Set Pind.1
Set Portb.0
Set Portb.1
Start Adc 'uruchamia wbudowany przetwornik
Wart_ac1 = Getadc(0) 'odczytanie wartości z wejści ADC0 mikrokontrolera
V1 = Wart_ac1 / 2.842 'zamiana odczytanej wartości z A/C na stopnie azymutu
Azym_odcz = Fusing(v1 , "#." )
Azym_zad = V1
Cursor Off
Cls
Wait 2
Azym_zad = V1
Locate 1 , 4 : Lcd "STEROWNIK"
Waitms 500
Locate 2 , 6 : Lcd "ROTORA"
Wait 2
Cls
Do
'początek pętli programu
Wart_ac1 = Getadc(0) 'odczytanie wartości z wejści ADC0 mikrokontrolera
V1 = Wart_ac1 / 2.842 'zamiana odczytanej wartości z A/C na stopnie azymutu
Azym_odcz = Fusing(v1 , "#." ) 'formatowanie wartości zmiennej
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 Pind.0 = 0 Then 'zwiększanie zadanego azymutu
Waitms 25
If Pind.0 = 0 Then
Incr Azym_zad
If Azym_zad => 360 Then
Azym_zad = 360
End If
End If
End If
If Pind.1 = 0 Then 'zmiejszanie zadanego azymutu
Waitms 25
If Pind.1 = 0 Then
Decr Azym_zad
If Azym_zad <= 0 Then
Azym_zad = 0
End If
End If
End If
Locate 3 , 12 : Lcd Azym_zad ; Chr(5)
If V1 <> Azym_zad Then
Gosub Kierunek
End If
Loop 'koniec pętli Do...Loop
End 'koniec programu
Sub Kierunek
If V1 < Azym_zad Then
Reset Portb.0 : Set Portb.1 'zapalanie diody LED1
End If
If V1 > Azym_zad Then
Reset Portb.1 : Set Portb.0 'zapalanie diody LED2
End If
If V1 = Azym_zad Then
Set Portb.0 : Set Portb.1 'gaszenie obu LED
End If
End Sub
część programu do odczytu z przetwornika znalazłem w necie - pozdrawiam 73 Jacek.
|