www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Terminal, RS232, ATmega16
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pon Apr 13, 2009 9:42 am    Naslov sporočila:  Terminal, RS232, ATmega16 Odgovori s citatom

Pozdravljeni!

Imam en problem, že od nekdaj, ki mi je zdaj začel iti skrajno na živce. Imam ATmego16, povezano prek RS232 kabla na računalnik, na katerem je Terminal v1.9b - 20041226 - by Br@y++. Finta je v tem, da komuniciranje ČIP->Računalnik deluje odlično, tudi pri večjih hitrostih pošiljanja daljših podatkov ni niti ene napake.
Problem pa nastave v smeri Računalnik->ČIP. Tukaj se vse zmeša. V Bascom-AVR sem sestavil eno čisto kratko kodo, ki čaka, da računalnik nekaj pošlje čipu in čip potem to takoj pošlje nazaj.

$regfile = "m16def.dat"
$crystal = 11059200
$baud = 115200

Dim Odgovor As Word

Waitms 500
Print "Seos!"

Waitms 500
Print "Pošlji mi neko številko, pa bomo vidli, kaj bom dobo (ti pošlem nazaj)."

Do
Odgovor = Waitkey()
Print Odgovor
Loop

End

Zdaj pa poglejmo, kaj mi napiše v Terminalu:
Seos!
Pošlji mi neko številko, pa bomo vidli, kaj bom dobo (ti pošlem nazaj).

6.............(pošljem 0)
103.........(pošljem 1)
51...........(pošljem 2)
102.........(pošljem 3)
25...........(pošljem 4)
101.........(pošljem 5)
50...........(pošljem 6)
100.........(pošljem 7)
12...........(pošljem 8)
99...........(pošljem 9)
103.........(pošljem 10)
6
103.........(pošljem 11)
103
103.........(pošljem 12)
51

... in tako naprej. Tako je pri številkah, pri črkah je še bolj zamešano. Ne gre pa za kake napake pri povezavi, ker je ta "napaka" vedno ista, vsaka številka ima vedno enak svoj Odgovor.

Kako se da to rešiti? Ali obstaja kak drug terminal (Hyper Terminala več v Visti ni) ali pa je težava kje drugje?

To bi res moral nekako rešiti, ker zdaj ne morem komunicirati s čipom in odpadejo kakšni projekti, kot npr. CNC...

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5530
Aktiv.: 24.06
Kraj: Domzale

PrispevekObjavljeno: Pon Apr 13, 2009 10:16 am    Naslov sporočila:   Odgovori s citatom

Katero verzijo Bascoma imaš? Vem, da so nekatere stare verzije imele nek podoben problem ...
Uporabljaš interni oscilator ali kvarc?

Lp, Grega
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pon Apr 13, 2009 10:37 am    Naslov sporočila:   Odgovori s citatom

Imam zunanji kristal 11059200Hz.

Verzija Bascom-AVR 1.11.9.1.

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
drVrh
Član
Član



Pridružen-a: Sre 20 Feb 2008 20:17
Prispevkov: 918
Aktiv.: 4.35
Kraj: Slovenija-Koroska-Prevalje-Lese

PrispevekObjavljeno: Pon Apr 13, 2009 10:46 am    Naslov sporočila:   Odgovori s citatom

Baudovo hitrost imaš preveliko zmanjšaj jo na 6900 potem bo vredo komuniciralo (vsaj mislim si pri 8051 je tako), preveri pa tudi HyperTerminal
imaš nek čuden terminal.

Poskusi terminal do Windowsov, kako pa se zadeva obnaša v Bascom -AVR terminalu? (Aja praviš da jih v Visti ni, poskusi na kakšnem drugem računalniku)

Aja nastavitve ki so nastavljenje v Bascom terminalu poskusi prepisati v tvoj terminal ter nato preveri.

Pravkar berem Help od Bascom AVR:

Citiram:
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0


Nastavitve poskusi vpisati direktno v mikrokontroler.

_________________
Iz dneva v dan sem se spraševal kaj je to elektrika, vendar nisem našel odgovora ... in še vedno si postavljam to vprašanje
LP
Grega
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Pon Apr 13, 2009 7:06 pm    Naslov sporočila:   Odgovori s citatom

Baud hitrost je kar pravilna, sem imel tudi na manjših (do 4800), pa se je dogajalo popolnoma enako.

Bascom terminal je, samo mi nekaj ne dela... HyperTerminala ni v Visti. Imam pa ta terminal, ki niti ni tako čuden in ga marsikdo uporablja.

Sem dodal ta košček kode, pa je enako. Saj tako je že privzeto nastavljeno.

ps.: Bascom-Terminal mi dela. Spet je enaka napaka, so pa cifre druge... 1 je 127, 2 je 63, edino 0 je 0.



KORAčNI MOTOR.zip
 Opis:
Rabil bi pa to za to kodo (testiranje koračnega motorja). Sicer še ni izpopolnjena, ampak vseeno. Ampak tam pri 1 ali 0 se ustavi, ker čip dobi neko drugo cifro.

Download
 Ime datoteke:  KORAčNI MOTOR.zip
 Velikost datoteke:  2.13 KB
 Downloadano:  15 krat


_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
domen_puncer
Član
Član



Pridružen-a: Čet 01 Maj 2008 13:30
Prispevkov: 78
Aktiv.: 0.37
Kraj: Ljubljana, Mozirje

PrispevekObjavljeno: Pon Apr 13, 2009 10:09 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
1 je 127, 2 je 63,


Bitno je to 00000001 -> 01111111; 00000010 -> 00111111
Mogoce je nakljucje, ampak meni vsaj to izgleda malo prelepo.

Se mi pa ne sklada s prejsnjimi trditvami o tem kaj posljes in kaj dobis. Tudi nisi pisal ali posljes '0' ali '\0'... torej znak '0', ali prvi znak ascii tabele?

_________________
Tiskanje sudoku
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
siljo
Član
Član



Pridružen-a: Tor 28 Okt 2003 8:08
Prispevkov: 1035
Aktiv.: 4.37
Kraj: Ribn'ca

PrispevekObjavljeno: Pon Apr 13, 2009 10:21 pm    Naslov sporočila:   Odgovori s citatom

Zakaj je Odgovor tipa word, če pa waitkey() vrne ascii ?
poskusi najprej z:
Dim Odgovor as Byte

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Tor Apr 14, 2009 4:46 pm    Naslov sporočila:   Odgovori s citatom

V priponki je v zipu (.html ne morem dodat) datoteka HTML s kodo iz helpa.

RS232 ukazi:
A = Waitkey() - Zaustavi program in čaka, dokler ne dobi iz UARTa nekega znaka. V A shrani ASCII kodo znaka (ne znak).
A = Inkey() - Leti mimo in če slučajno kak znak čaka na UARTu, ga "pobere" in njegovo ASCII vrednost shrani v A.

Zdaj pa še, kaki je lahko ukaz print:
Print A - Napiše originalno vrednost A, taka, kot je v resnici.
Print Hex(A) - Napiše vrednost A v HEX obliki.
Print Bin(A) - Napiše vrednost A v binarni obliki.
Print Chr(A) - Če je A slučajno ASCII koda od kakega znaka, napiše ta znak, vrednost A pretvori v ASCII znak.

V priponki si poglejte kodo, ker je kar dolga (iz helpa prilepljena) in je nebom lepil tukaj.

V glavnem, kodo sem naložil na ČIP in poglejmo dogajanje v Terminalu:
Hello, hit any alphanumerical key... (pošljem A)
95

Thanks!, as you could see the controller prints a number
but not the key you pressed.

Now try the enter key...
(spet pošljem A)
95

The number you see is the ASCII value of the key you pressed.
We need to convert the number back to the key...

Please try an alphanumerical key again...
(spet pošljem A)
_ (tukaj bi se zdaj moralo prikazat A)
That's fine!

For a lot of functions, just one key is not enough...
Now type your name and hit enter to confirm

Tukaj se ustavi, ker napišem Bojan in stisnem ENTER, vendar izgleda, da narobe zazna ENTER!

Torej, nekako se mi zdi, kot da ČIP in terminal nebi imela enake ASCII tabele. Nekaj čudnega je tukaj narobe... Ali je možno, da je pri vsem tem kriv čip ATmega16?



RS232 KOMUNIKACIJA 2.zip
 Opis:

Download
 Ime datoteke:  RS232 KOMUNIKACIJA 2.zip
 Velikost datoteke:  1.28 KB
 Downloadano:  9 krat


_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
dragoon
Član
Član



Pridružen-a: Čet 03 Maj 2007 21:51
Prispevkov: 452
Aktiv.: 2.05
Kraj: Trojane

PrispevekObjavljeno: Tor Apr 14, 2009 5:09 pm    Naslov sporočila:   Odgovori s citatom

Še enkrat preberi siljotov odgovor, probaj, potem pa poglej v help pod data types in si probaj razložit pojav.

hint: domen_puncer je na pravi poti. nekaj v zvezi z negativnimi števili in zapisom le teh v dvojiškem kodu. Cool

_________________
LP, Mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Tor Apr 14, 2009 6:47 pm    Naslov sporočila:   Odgovori s citatom

dragoon je napisal/a:
Še enkrat preberi siljotov odgovor, probaj, potem pa poglej v help pod data types in si probaj razložit pojav.

hint: domen_puncer je na pravi poti. nekaj v zvezi z negativnimi števili in zapisom le teh v dvojiškem kodu. Cool


Če pogledaš moj odgovor pred tem, so vse spremenljivke tipa Word, pa še kar ne dela.

Zdaj enkrat grem kupit drug čip, eno ATmego32, mogoče je pa čip blesav...

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
dragoon
Član
Član



Pridružen-a: Čet 03 Maj 2007 21:51
Prispevkov: 452
Aktiv.: 2.05
Kraj: Trojane

PrispevekObjavljeno: Tor Apr 14, 2009 8:11 pm    Naslov sporočila:   Odgovori s citatom

heh, čip ni nič blesav.. sem pogledal tvojo zadnjo kodo v htmlju.
kolikor vidim ti ob pritisku vrača kodo 95, to je v tabeli podčrtaj. velik A je v ascii na 65. mestu, mali a pa na 97.

nikjer ne vidim kako imaš nastavljen UART. si ziher da bascom naredi tako kakor imaš ti v terminalu? poskusi ročno nastavit uart s takšno nastavitvijo registrov, popravi komentarje in znak ki predstavlja hexa kod v bascomu (0xff=&ff?)

Koda:
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600

UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;


takšne parametre komunikacije nastavi tudi v terminalu.

_________________
LP, Mitja
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Tor Apr 14, 2009 9:35 pm    Naslov sporočila:   Odgovori s citatom

Ok, to sem dodal kodi:

Ucsra = &H00
Ucsrb = &H18
Ucsrc = &H86
Ubrrh = &H00
Ubrrl = &H47

Kako pa to nastavim v terminalu (hopsasa spremenite v shrani . si Rolling Eyes Presneta scripta Brick wall )?

No, saj nisem rabil kaj dosti spreminjati... samo baud sem moral dati na 9600, Drugače pa je napaka enaka.

Zdaj sem nekako rešil problem, vendar bolj zakomplicirano. Pomagam si s tem programčkom:

Dim A As byte
Do
A = Waitkey()
Print "ASCII koda " ; A ; " iz RS232, znak " ; Chr(a)
Loop Until A = 27

In tako vem, kad čip dobi, ko jaz kaj napišem. Zdaj sem pač napisal if A = 6 Then in If A = 103, kar ponazarja 0 ali 1.

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
siljo
Član
Član



Pridružen-a: Tor 28 Okt 2003 8:08
Prispevkov: 1035
Aktiv.: 4.37
Kraj: Ribn'ca

PrispevekObjavljeno: Sre Apr 15, 2009 8:49 am    Naslov sporočila:   Odgovori s citatom

instaliraj si tole:
http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx
in boš v resnici videl kaj ti pride na PC in kaj gre od PC-ja......

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
bolha95
Član
Član



Pridružen-a: Pet 14 Dec 2007 21:33
Prispevkov: 296
Aktiv.: 1.39
Kraj: Križe / Tržič

PrispevekObjavljeno: Sre Apr 15, 2009 11:26 am    Naslov sporočila:   Odgovori s citatom

Free Serial Port Monitor
_________________
LP,
Robi
Kjer se znanje konča, se domišljija začne
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sob Apr 18, 2009 9:12 pm    Naslov sporočila:   Odgovori s citatom

Malo sem raziskoval in prišel do spoznanja, da je ASCII tabela in tudi sam čip popolnoma delujoča in pravilna. Ni problem v pretvarjanju znakom in pošiljanju le teh nazaj v Terminal, temveč je krivec vsega sam Terminal, ki pošilja napačne podatke.

Najboljše da si pogledate kodo v Bascom-AVR in LOG file Terminala (sta v priponki kot .html in .txt), kjer je vse razvidno.

V bistvu jaz v programu v string spremenljivko S zapišem en znak, nato pa ga pretvorim v decimalno in HEX obliko njegove ASCII vrednosti. Nato pa, da se prepričam, da čip pretvarja pravilno, decimalno oblike ASCII vrednosti spet pretvorim v znak in gledam, če sta enaka. In sta! Torej je napaka v terminalu. Edino, kar je pravilno je, da če v terminal napišem #0 (# - decimalna vrednost - 0), mi čip vrne, da sem napisal znak NUL oz. <0>. Enak efekt pa je, če stisnem đ in pošljem. Torej "po terminalovo" je đ enak znaku NUL z ASCII vrednostjo #000. Ali pa ga samo čip tako prebere...

Portmon mi je med drugim vrnil nekaj nastavitev Terminala:
Rate: 115200
StopBits: 1 Parity: NONE WordLenght: 8
EOF: 0 ERR: 0 BRK: 0 EVT: 0 XON: 11 XOFF: 13
Shake: 1 Replace: 0 XonLimit: 512 XoffLimit: 1
Purge: TXABORT RXABORT TXCLEAR RXCLEAR
InSize: 2048 OutSize: 2048
RI: 1 RM: 1 WM:0 WC: 0

Kaka nova ideja za rešitev? Hvala!



RS232 komunikacija.zip
 Opis:

Download
 Ime datoteke:  RS232 komunikacija.zip
 Velikost datoteke:  1.62 KB
 Downloadano:  13 krat


_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
Pojdi na:  
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group