Soros port (rs232)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Igen.. csak én nem nagyon értek a nyelvükön.
Bár a minta progit elkűldeném, abból csak megértenék.
Illetve el is elküldöm. Majd meglátjuk mit reagálnak rá.


Ez a LIB-es dolog érdekes.

Csak ott meg ugye ASM kellene. Én azt nem nagyon tudom még sajnos.
:lol:

Azért kipróbálom más verzióval is.. csak az a fránya kódméret.. :oops:
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Háát így sem eszi.

Dim Com1setup As String * 20
Com1setup = "comd.0:19200,8,n,1"
Open Com1setup For Output As #1
Print #1 , "hello"
Close #1

end
Avatar
nobody_hun
Bitfaragó
Hozzászólások: 425
Csatlakozott: 2005. november 14. hétfő, 7:00

Hozzászólás Szerző: nobody_hun »

herc kolléga nagyjából már leírta:

Kód: Egész kijelölése

Rem Lezárni a nyitott soros portot
Close #1

Rem I értéke alapján bekonfiguráljuk a Com1-et
Select Case I
   Case 1 
   Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

   Case 2
   Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

   Case 3
   Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

End Select

Rem Újra megnyitni a soros portot
Open "com1:" For Binary As #1
[/code]
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Szoftveres sorosport vagy hardveres kell? mert elég rendesen keveredik már.....
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Szoftveres.
Port A0 - A7 -ig 8 db soros kimenet.
Az alábbi kódot a bascom elfogadja. A Gondom viszont hogy Com5 és fölfele már nem használható .



$regfile "m32def.dat"
$crystal = 11059200


Dim I As Byte
I = 1


Open "comd.0:19200,8,n,1" For Output As #7
Print #7 , "hello"


Rem Lezárni a nyitott soros portot
Close #7
Rem I értéke alapján bekonfiguráljuk a Com1-et

Select Case I
Case 1 : Config Com7 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Case 2 : Config Com7 = 4800 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

Case 3 : Config Com7 = 300 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

End Select

Rem Újra megnyitni a soros portot
Open "com1:" For Binary As #7
Print #7 , "talán most"
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Kód: Egész kijelölése

$regfile "m32def.dat" 
$crystal = 11059200 


Dim I As Byte 
I = 1 


Open "comd.0:19200,8,n,1" For Output As #7 
Print #7 , "hello" 


Rem Lezárni a nyitott soros portot 
Close #7 
Rem I értéke alapján bekonfiguráljuk a Com1-et 

Select Case I 
Case 1 : Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 

Case 2 : Config Com1 = 4800 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 

Case 3 : Config Com1 = 300 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 

End Select 

Rem Újra megnyitni a soros portot 
Open "com1:" For Binary As #7 
Print #7 , "talán most"
Config COM1, nem COM7!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Megoldottam:
Nem a legszebb, de működik:)

Kód: Egész kijelölése

$regfile "m32def.dat"
$crystal = 11059200
Declare Sub Com1print(byval A As String)
Declare Sub Com2print(byval A As String)
Dim A As String * 20

Dim I As Byte
I = 1


Open "comd.0:19200,8,n,1" For Output As #7
Print #7 , "hello"
Rem Lezárni a nyitott soros portot
Close #7

Rem I értéke alapján bekonfiguráljuk és írunk a Com1-re!
If I = 1 Then Call Com1print( "mitirki")
If I = 2 Then Call Com2print( "mitirki")
'Select Case I
'Case 1 : Call Com1()
'Case 2 : Call Com2()
'Case 3 : Call Com3()
'End Select
'csak írkálunk a COM1re:
call com1print("ezaz!")
Rem Újra megnyitni a soros portot
Open "com1:" For Binary As #7
Print #7 , "talán most"
Close #7
End


Sub Com1print(a)
Open "comd.0:19200,8,n,1" For Output As #7
Print #7 , A
Close #7
Print
End Sub

Sub Com2print(a)
Open "comd.0:9600,8,n,1" For Output As #7
Print #7 , A
Close #7
Print
End Sub

Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Nagyom köszönöm!
Kipróbálom.
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Háát nem megy nálam.
"mitirki" sem jelenik meg, helyette soremelés kocsi vissza.
Azaz "print" tartalom nélül.

:roll:
A hozzászólást 1 alkalommal szerkesztették, utoljára Sanci 2008. május 9. péntek, 11:20-kor.
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Dim A As String * 20

A = "com1:9600,7,n,2"

Fociklus:
Do

If A = "com1:9600,7,n,2" Then Gosub Com196007n2 'itt nem ok.
If A = "com1:9600,7,n,1" Then Gosub Com196007n1
Waitms 200
Loop

Com196007n1:
Open "coma.0:9600,7,n,1" For Output As #1
Print #1 , "proba 1"
Close #1
Return

Eddig végrehajtja, innentől nem.


Com196007n2:
Open "coma.0:9600,7,n,1" For Output As #1
Print #1 , "proba 2"
Close #1
Return

End :oops:



Más variáció:

$sim
Dim A As Byte
A = 2

Fociklus:
Select Case A
Case 1 : Open "coma.0:9600,7,n,1" For Output As #1
Print #1 , "select 1"
Close #1

Case 2 : Open "coma.0:9600,8,o,1" For Output As #1
Print #1 , "select 2"
Close #1

Case Else : Nop
End Select
Waitms 200
Goto Fociklus

ITT a CASE 2: részt elvileg végrehajtja, ám a valóságban nem küldi ki az adatokat a #1 -en.
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Lehet hülye 5let de: Van e arra mód hogy az EEprom-ba utasításokat tároljak, majd onnan csak a szükségeset bányásszam ki?
elvileg akkor a programba nem fordítaná be..
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Lehet hülye 5let de: Van e arra mód hogy az EEprom-ba utasításokat tároljak, majd onnan csak a szükségeset bányásszam ki?
elvileg akkor a programba nem fordítaná be..
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Nem, nincsen......
EEPROM adathalmaz.....

Az utasítás meg amúgy is csak ASM lenne, nem BASCOM alapú....


Multiplex megoldás?
http://www.vimms.org/multiplex/layout.pdf
Avatar
Sanci
Bitmanipulátor
Hozzászólások: 107
Csatlakozott: 2008. március 14. péntek, 6:00

Hozzászólás Szerző: Sanci »

Igen, már filóztam rajta.

Bár az is megfordult a fejembe hogy Mega128. ott elvileg a 4 Hw Uart-ot tudom konfigolni, majd nyitok 4 SW-t mellé.
Igaz akkor a 4 SW az fix marad, de a 4 HW elvileg már konfigolható kedvem szerint.

A végleges kódméret abba már biztosan bele is férne.

Az MCS-nek elküldtem a külömböző megoldások változatát... Hátha..

A multiplexeres módszerhez van szerencsére itthon cd 4051,4052,4053 is. Beatankoltam szerencsére nem nagy tétel. (Kb.50 Ft.)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

M1280 - 4
M2560 -4
M640 - 4

Az M128 csak 2 UART-ot tartalmaz!
Válasz küldése