Prijem dat zo serioveho portu

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
marosh555
Stály člen
Stály člen
Príspevky: 243
Dátum registrácie: 15 Júl 2007, 00:00
Bydlisko: Žilina
Vek: 34

Prijem dat zo serioveho portu

Príspevok od používateľa marosh555 » 24 Feb 2013, 15:47

Zdravim Vas, uz druhy den sa snazim rozchodit komunikaciu medzi PC a atmegou. Samotna komunikaciu mi uz chodi ale nedokazem spravne precitat data ktore posielam a neviem ci robim chybu v ovladacom softe alebo v softe pre MCU. Predstava je taka ze by som do premennej posielal nejaku ciselnu hodnotu a po jej prijati by som na zaklade hodnoty vykonal nejaku cinnost(napr. zopnutie rele, rozsvietenie LED a podobne). Vo visual studiu mam definovane ze zapisujem do MCU hodnotu 25, avsak ked si na LCD zobrazim hodnotu ktoru som prijal tak ta je 24152230248. Vedel by niekto poradit kde by mohol byt problem? Prikladam cast programu aj z bascomu aj z visual studia. Dakujem

Bascom

Kód: Vybrať všetko

$regfile = "m644pdef.dat"
$baud = 2400
$crystal = 8000000
$hwstack = 32
$swstack = 8
$framesize = 16

'Konfiguracia LCD displeja
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5
Config Lcd = 16 * 2
Cls
Cursor Off

'Konfiguracia seriovej linky pre prijem dat z PC
Config Serialin = Buffered , Size = 10

'Povolenie globalnych preruseni
Enable Interrupts

'Konfiguracia I/O portov
Config Porta.6 = Output

'Pomenovanie I/O portov
Led Alias Porta.6

'Nastavenie I/O portov na pociatocnu hodnotu
Led = 1
Dim A As Byte
A = 0

Do
Inputbin A
Lcd A
Loop

End
Visual Studio 2012

Kód: Vybrať všetko

If SerialPort1.IsOpen = True Then
            Dim A As Byte
            A = 25
            TextBox1.Text = "Zapnuté"
            SerialPort1.Write(A)

        End If
0

smotek7
Pokročilý člen
Pokročilý člen
Príspevky: 528
Dátum registrácie: 08 Aug 2011, 00:00
Bydlisko: PN
Vek: 44

Re: Prijem dat zo serioveho portu

Príspevok od používateľa smotek7 » 24 Feb 2013, 17:35

Neviem ako je to v visual studiu, ale to
SerialPort1.Write(A) urcite to posle ako jeden byt ?
Vies si to prepojit z druhym COM portom a odsledovat co si vlasne poslal?

Asi to chces vypisat na LCD na jedno miesto cize treba vratit kurzor na zaciatok.
0
Nemusím vedeť váhu elektrónu ak chcem zaspájkovať tranzistor.

Používateľov profilový obrázok
tichy
Stály člen
Stály člen
Príspevky: 184
Dátum registrácie: 29 Nov 2008, 00:00
Vek: 37

Re: Prijem dat zo serioveho portu

Príspevok od používateľa tichy » 24 Feb 2013, 19:24

Čau,
stáhni si hercules: http://new.hwg.cz/download/sw/version/h ... _3-2-5.exe jedná se o terminál kterej ti umožní posílat jednotliví bajty na sériovou linku. Tím si ověř, že data správně čteš, protože hercules je velmi spolehlivý terminál a již léto ho používám na odladění různých protokolů na sériové lince.
0

Používateľov profilový obrázok
marosh555
Stály člen
Stály člen
Príspevky: 243
Dátum registrácie: 15 Júl 2007, 00:00
Bydlisko: Žilina
Vek: 34

Re: Prijem dat zo serioveho portu

Príspevok od používateľa marosh555 » 24 Feb 2013, 20:49

smotek7: ci to posle ako jeden byte neviem, ale chapem to tak ze ano tak dufam ze tomu rozumiem spravne. Ako som pisal robim v tom dokopy asi tri dni takze sa len ucim a takisto robim prvykrat komunikaciu MCU po seriovej linke.
Za ten program dakujem, akonahle budem doma tak to vyskusam a dam vediet ako som dopadol. Urcite bude chyba niekde vo mne no zatial neviem kde robim nieco zle
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok