Moj problem polega na ustawianiu baudrate'u dla rs232 od strony BASCOM'a
Mam ATEMGE16 i chce wyslac dane zczytane z ADC do Pceta - wszystko dziala calkiem sprawnie. Szkopuł w tym ze wpisuje w bascomie bauda np. 115200 a wychodzi mi w rzeczywistosci tyle razy mniejszy jaki mam kwarc:/
wyglada to tak:
baud(rzeczywisty) = baut(ustawiony w bascomie) / (wartość kwarcu /1 000 000)
oczywiscie moge pisywac wiekszy baud w bascomie ale bascom blokuje powyzej pewnej wartosci tak ze nie moge osiagnac nawet 28800b/s
dla kwarcu 12MHz(stosowalem 12MHz) to ladnie moge to policzyc ale juz dla 11,0592MHz(dla tego kwarcu nie ma bledów) to juz wychodza wyniki z przecinkami:/
np:
baud(ktory chce miec) = baud(wpisany w bascomie) / kwarc (tj. 11,0592)
19200b/s = 212336,64 / 11,0592
czy istnieje jakas szansa na zrobienie tego poprawnie w bascomie czy musze się wdawac w wojne z asm ??
druga sprawa tyczy się przesylania danych z AVR'a - wychodza zawsze w postaci STRING wolalbym przeslac gotowe dwa bajty wyniku.
Przesyłam za pomoca PRINT
komenda serout nie chce dzialc:(
zalaczam listing
$baud = 106168
$crystal = 11059200
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word
Dim W2 As Word
Dim Kanal1 As Byte
Dim Kanal2 As Byte
Kanal1 = 0
Kanal2 = 1
Baud = 53084
Do
W = Getadc(kanal1)
Print W
W2 = Getadc(kanal2)
Print W2
Loop
End
dane odbieram w kompie za pomoca LABVIEW
prosze o pomoc
Mam ATEMGE16 i chce wyslac dane zczytane z ADC do Pceta - wszystko dziala calkiem sprawnie. Szkopuł w tym ze wpisuje w bascomie bauda np. 115200 a wychodzi mi w rzeczywistosci tyle razy mniejszy jaki mam kwarc:/
wyglada to tak:
baud(rzeczywisty) = baut(ustawiony w bascomie) / (wartość kwarcu /1 000 000)
oczywiscie moge pisywac wiekszy baud w bascomie ale bascom blokuje powyzej pewnej wartosci tak ze nie moge osiagnac nawet 28800b/s
dla kwarcu 12MHz(stosowalem 12MHz) to ladnie moge to policzyc ale juz dla 11,0592MHz(dla tego kwarcu nie ma bledów) to juz wychodza wyniki z przecinkami:/
np:
baud(ktory chce miec) = baud(wpisany w bascomie) / kwarc (tj. 11,0592)
19200b/s = 212336,64 / 11,0592
czy istnieje jakas szansa na zrobienie tego poprawnie w bascomie czy musze się wdawac w wojne z asm ??
druga sprawa tyczy się przesylania danych z AVR'a - wychodza zawsze w postaci STRING wolalbym przeslac gotowe dwa bajty wyniku.
Przesyłam za pomoca PRINT
komenda serout nie chce dzialc:(
zalaczam listing
$baud = 106168
$crystal = 11059200
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word
Dim W2 As Word
Dim Kanal1 As Byte
Dim Kanal2 As Byte
Kanal1 = 0
Kanal2 = 1
Baud = 53084
Do
W = Getadc(kanal1)
Print W
W2 = Getadc(kanal2)
Print W2
Loop
End
dane odbieram w kompie za pomoca LABVIEW
prosze o pomoc