Soros port (rs232)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Mivel ez a feladata!
var = INKEY()

Returns the ASCII value of the first character in the serial input buffer.

Visszaadja a ASCII értékét az első karakter a soros bemeneti puffert.

:D
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00

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

De nekem a buffer teljes tartalmára szükségem lenne, azt hogy tudom megoldani?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Ciklusba szervezve:

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

Dim K As String * 1 , S As String * 15
Dim I As Byte
I = 0
S = ""
Do

  K = Inkey()                                               'get ascii value from serial port
  If K = Chr(13) Then                                       'Ha ENTER
     Print "adat:" ; S
  Else
      S = S + K
      K = ""
  End If
  I = I + 1

Loop Until I > 15 Or K = Chr(27)                            'until ESC is pressed

End                                                         'end program
Valahogy ehez hasonlóan.
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2011. február 12. szombat, 21:43-kor.
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00

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

köszi! siker...

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

Sub Rsolvas
Dim K As String * 1
Dim F As Byte
F = 0
Do

  K = Inkey()                                               'get ascii value from serial port
  If K = Chr(13) Then                                       'Ha ENTER
     Print "adat:" ; Adat
  Else
      Adat = Adat + K
      K = ""
  End If
  F = F + 1

Loop Until F > 15 Or K = Chr(27)                            'until ESC is pressed

U = Len(adat)
Print Adat
Print "u:" ; U
B = 0
End Sub
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Ha Te mondod!

Mert szerintem maradt még bőven megoldani valód!
Pl.: ENTER után ki kellene lépni a hurokból.
ESC esetén törölni kellene a beolvasott stringet.
Puffer túllépés esetén még + üríteni kellene a puffert, hogy ne maradjon benne szemét.
8)
Avatar
puli122
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2009. március 18. szerda, 6:00

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

Sziasztok!

Mega644p-n nem tudom megnyitni valamiért a 2. soros portot.
Így próbálom:

Open "com2:19200,8,n,1" For Random As #2

Printbin #2 &B00000001

De nem működik, nem küld semmit. Mit csinálok rosszul ?

Köszi előre is.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Printbin #2, &b11111111
Avatar
puli122
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2009. március 18. szerda, 6:00

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

Azthiszem mással lehet a gond. Van egy usb-s rs232 átalakítóm. Ftdi és max232 van benne. Ha az arduino RX TX kimenetére dugom rá, ott szépen kommunikál, de egy másik panelen, ahol mega644p van, nem csinál semmit. Szerintetek mitől lehet ?
Avatar
puli122
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2009. március 18. szerda, 6:00

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

Sehogyan sem tudom megnyitni a 2. soros portot.

Így se megy:

Open "com2:" For Random As #2

Do
Print #2 , "teszt"
Waitms 500
Loop

És már mindenhogy próbálkoztam. Nem lehet hogy még valamit be kellene állítani ?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

$baud1=9600

hiányzik....
Avatar
puli122
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2009. március 18. szerda, 6:00

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

Ez volt a megoldás. Köszönöm!
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

Sziasztok!

Valaki tud arra magyarázatot, hogy a

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

Config Serialout = Buffered , Size = 10
parancs miért nem működik rendesen? Van, hogy lefordítom a programot és nem küld semmit sem. Utána lefordítom még egyszer és jó.

ATMega 16, $baud = 31250, Bascom 1.11.9.0 alatt.
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Enable interrupts sor benne van a programban?


Csak nem MIDI vezérlő lesz?:)
Órajelfortás igaz Quartz?
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

Enable interrupts van benne, használom a 3 timert és a két megszakítást is.

Az órajelforrás egy 16 MHz-es kvarc.

És igen, MIDI vezérlő lesz. :D (Már majdnem készen van, hardveresen és szoftveresen is).
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Az egyéb INT-ben vagy sokat és a soros buferben torlódik az adat. Elvileg - folyamatos vétel esetén - 0.3 msec-enként jön adat!
Válasz küldése