 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
ssdzkrez Član



Pridružen-a: Sre 12 Jan 2011 15:13 Prispevkov: 401 Aktiv.: 2.28 Kraj: Hrastnik
|
Objavljeno: Čet Mar 03, 2011 9:38 pm Naslov sporočila: AT90S2313 + RS232 TEŽAVE |
|
|
Avr imam povezan prek HIN232 čipa na com port računalnika in nikakor ne morem sprejeti podatkov iz terminala v kontroler. Obratna komunikacija dela brez težav
PRINT " .. bla bla ..."
z nobenim od ukazov INPUT, INKEY pa ne morem sprejemati podatkov v kontroler.
Primer osnovnega programa za komunikacijo:
$regfile = "2313Def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Dim A As Word
Dim C As Integer
Dim S As String * 15
Do
Input "Vpisi spremenljivko A: " , A
Print "Spremenljivka A je: " ; A
Wait 3
Input "Vpisi tekst S:" , S
Print "Napisali ste tekst: " ; S
Wait 3
Loop
Kakšna ideja? |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.68 Kraj: KOPER
|
Objavljeno: Čet Mar 03, 2011 10:59 pm Naslov sporočila: |
|
|
Idej je dosti. To pa je malo premalo kode, da bi delalo kot želiš. Jutri ti bom ponudil malo več kode. Sedaj nisem na delovnem računalniku, zato je nimam pri roki. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.68 Kraj: KOPER
|
Objavljeno: Pet Mar 04, 2011 9:02 am Naslov sporočila: |
|
|
Koda: |
$regfile = "2313Def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
Dim Rx_fifo(25) As Byte
Dim Rx_fifo_s As String * 25 At Rx_fifo Overlay
Dim Tx_fifo(10) As Byte
Dim Rs_rx_flag As Bit
Dim A As Byte
Dim Rs_rx As Byte
Enable Urxc 'RxD interrupt flag
On Urxc Rec_isr
Enable Interrupts
'******************************************************************************
Do
If Rs_rx_flag = 1 Then 'Sprejeli smo string končan s "13"
Reset Rs_rx_flag
Cls
Lcd Rx_fifo_s 'Prikažeš na LCD string ki si ga sprejel
' V KOLIKOR ŽELIŠ PRENAŠATI ARRAYE V KATERIH SO BYTI Z VREDNOSTJO 0 JE POSTOPEK MALO DRUGAČEN.
End If
Loop
'****************** SERIAL INTERRUPT SERVICE RUTINE **************************
Rec_isr:
A = Inkey() 'shranjuje znak za znakom
If A > 0 Then
Incr Rs_rx ' Rs_rx je kazalec na pozicijo v sprejemni buffer
Rx_fifo(rs_rx) = A
If A = 13 Then ' string končan z CR (13)
Set Rs_rx_flag
Rs_rx = 1 ' Postavimo kazalec na začetek sprejemnega bufferja
End If ' tako je pripravljen na sprejem novega stringa
End If
Return
'*****************************************************************************
|
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
ssdzkrez Član



Pridružen-a: Sre 12 Jan 2011 15:13 Prispevkov: 401 Aktiv.: 2.28 Kraj: Hrastnik
|
Objavljeno: Pet Mar 04, 2011 10:21 am Naslov sporočila: |
|
|
Nekaj podobnega sem tudi že preizkusil, bom preštudiral še tvojo kodo in probal. Ali se ne skriva podobna koda za ukazom INPUT? Kolikor sem raziskoval naj bi bil INPUT učinkovit takrat kadar vemo kdaj bo kaj priletelo na UART. Čudno je, da ne morem s kontrolerjem sprejeti nobenega znaka ... tudi nobenih "heroglifov".
Hvala za kodod ... kot sem rekel, bom probal ... popoldne! |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.68 Kraj: KOPER
|
Objavljeno: Pet Mar 04, 2011 2:13 pm Naslov sporočila: |
|
|
Čeprav je RS232 enostaven, so lahko napake raznolike.
Za probo daj na konektorju Rs232 skupaj žici 2+3. Ko boš pisal na PC terminalu moraš oddano sprejeti nazaj. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
ssdzkrez Član



Pridružen-a: Sre 12 Jan 2011 15:13 Prispevkov: 401 Aktiv.: 2.28 Kraj: Hrastnik
|
Objavljeno: Pet Mar 04, 2011 5:54 pm Naslov sporočila: |
|
|
Veš kak se je zdaj to razvilo ... podobno kot če bi se želel obrit pa imaš držalo brez žiletke.
Za test sem uporabil neko staro testno plato, katero sem naredil, ko sem hodil še v šolo, TTL 232 pa sem zvezal na protobordu. Vse lepo, pa vendar ne deluje ... dokler nisem ugotovil, da sem takrat na preizkusni plošči postavil jumper, ki gre na RX nogico in skrbi, da lahko izberem ali bom imel vhod/izhod, ali pa UART. Cel dan sem si včeri pulil lase zakaj ne deluje - jumper mora biti razklenjen! . Svašta!
Hvala za pomoč! |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|