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 

Bascom in komunikacija
Pojdi na stran 1, 2  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
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Čet Dec 06, 2012 9:05 pm    Naslov sporočila:  Bascom in komunikacija Odgovori s citatom

Torej delam nekaj z komunkacijami na ATmega128. Uporabljam UART2.
Pošiljanje dela brez problema, težave imam z prijemom na tem kanalu.

Za prvi UART ima takole:
Koda:

On Urxc Rxd_sr
Enable Urxc
Enable Interrupts


Kako bi to moralo izgledati ua UART2 ?

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mucek
Član
Član



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

PrispevekObjavljeno: Čet Dec 06, 2012 10:42 pm    Naslov sporočila:   Odgovori s citatom

Urxc1 bo pravi register, ce se ne motim za sekundarni uart...

Lp, g
Koda:

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Pet Dec 07, 2012 9:36 pm    Naslov sporočila:   Odgovori s citatom

Ja, je prav.
Hvala

In še eno vprašanje. imam za branje stringa uporabljen tale del kode:
Koda:

Const Maxlen = 6
Dim X As Byte
Dim Xx(maxlen) As Byte
Dim S As String * Maxlen At Xx(1) Overlay
Dim Prebrano As Bit
.
.
.
Rxd_sr:

Xx(x) = Udr                                                 

   If Xx(x) = &H0D Then                                   
       Xx(x) = 0                                     
   End If

   If Xx(x) = &H0A Then
       Xx(x) = 0                                           
       Set Prebrano                                       
       X = 0                                             
   End If

   Incr X
  If X > Maxlen Then
  Xx(x) = 0
     X = 1
  Set Prebrano
  End If


Koda deluje brez težav vendar z omejitvijo. String mora biti fiksne dolžine.
Kaj bi moral spremeniti , da bi lahko prebral naključno dolžino stirnga. Seveda zaključenega z CHR13, lahko pa z kakšnim drugim znakom.
Nekaj rešitev sem že našel, vendar nobena ni zanesljiva..vedno se je kaj izgubilo..
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 9:34 am    Naslov sporočila:   Odgovori s citatom

Ups, ta del kode mi je pa znan.

Vendarl bi moral delovati za katerikoli dolžino sporočila, ki je krajše od Maxlen. Tvoj Maxlen je 6 kar se mi zdi malo.
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 5.68
Kraj: KOPER

PrispevekObjavljeno: Sob Dec 08, 2012 9:52 am    Naslov sporočila:   Odgovori s citatom

Koda zanesljivo dela:
priprava kode za TX

Koda:

              tx_podatek(1) = &H02                     ' 2 = header
              tx_podatek(2) = &H00                     ' 0 = header
              tx_podatek(3) = &H02                     ' 2 = header
              tx_podatek(4) = 10                       ' DOLŽINA
              tx_podatek(5) = 1'PODATEK                '
              tx_podatek(6) = 5'PODATEK
              tx_podatek(7) = 2'PODATEK
              tx_podatek(8) = 255'PODATEK
              tx_podatek(9) =  &H0D
              tx_podatek(10) =  &H0A


sprejem kode v ISR:



Koda:

'****************** SERIAL INTERRUPT SERVICE RUTINE 2**************************

Rec_isr:

     B = Inkey()

     If Sinhro = 0 And B = 2 Then  'LOVI PRVI HEADER
         Sinhro = 1
         St_rx = 1
         Rs_rxbuffer(st_rx) = B
         Goto Ven
     End If

     If Sinhro = 1 And B = 0 Then 'LOVI DRUGI HEADER
         Sinhro = 2
         St_rx = 2
         Rs_rxbuffer(st_rx) = B
         Goto Ven
     End If

     If Sinhro = 2 And B = 2 Then 'LOVI TRETJI HEADER
         Sinhro = 3
         St_rx = 3
         Rs_rxbuffer(st_rx) = B
         Goto Ven
     End If

     If Sinhro > 2 Then ' ČE SO HEADERJI 1,2,3 V REDU ZAPISUJ PREJETE PODATKE
        Incr St_rx   ' V SPREJEMNI BUFFER
        Rs_rxbuffer(st_rx) = B
     End If

     If St_rx =  Rs_rxbuffer(4) Then   'prebrano je tx_podatek(4) = 10     znakov
        Sinhro = 0
        St_rx = 0
        Set Rsrx_sek_f   'postavimo zastavico, da so sprejeti podatki
     End If      'v LOOPu obdelamo sprejete podatke
     Ven:

 Return

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 9:57 am    Naslov sporočila:   Odgovori s citatom

Ja, to je druga varianta sprejemanja sporočila, kjer gre za sporočila, ki niso tipa string.
Pri sporočilih tipa string je bolj enostavno, ker so poslani bajti samo veljavne ascii kombinacije.
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Sob Dec 08, 2012 10:06 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Ups, ta del kode mi je pa znan.

Vendarl bi moral delovati za katerikoli dolžino sporočila, ki je krajše od Maxlen. Tvoj Maxlen je 6 kar se mi zdi malo.


ja vilko Smile

dela zelo lepo. Sprejema pa samo string, ki je dolžine maxlen.

V tem primeru je bil maxlen= 6 čisto dovolj. zdaj se pa pogovaram z sql serverjem..pa je 6 znakom aposlutno premalo..
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 10:21 am    Naslov sporočila:   Odgovori s citatom

Potem pač maxlen povečaš na največjo dolžino niza, ki jo nameravaš brati.

Ali pa praviš, da, če je dolžina manjša od maxlen, ne dela?
Potem je morda caka v tem, da računalnik, ki pošilja, (morda linux) ne zaključi niza za &H0d &H0a

Ta rutina zazna koneck ko najde &H0A

Poizkusi set prebrano prestaviti v tisti del kode, ki se aktivira na &H0D, en if višje
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Sob Dec 08, 2012 11:13 am    Naslov sporočila:   Odgovori s citatom

vilko, deluje z stringom poljubne dolžine, če se string zaključi z CHR(13) in CHR(10)
tako, da je dejansko zadeva zelo uporabna.
Hvala!!

mam še eno vpašanje, zgubil dva dni z težavo..če sem vključil v aplikacijo grafični LCD, komunikacija ni delovala.
Ugotovil sem, da je težava v
Koda:

'$hwstack = 100
'$swstack = 100
'$framesize = 100


So ti podatki pomembni v programu..oziroma potrebni ?
Aja uporabljam ATmega128 .
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 11:19 am    Naslov sporočila:   Odgovori s citatom

Ti podatki so potrebni, kadar kličeš podprograme-funkcije s parametri.
Zagotavljajo prostor, kamor spravlja bascom parametre pri klicu vsakega podprograma, funkcije. Če en podprogram-funkcija, kliče drugega, potem je tega prostora potrebno več.

tako, kot si napisal, bi moralo zadostovati.

Na grafični LCD se ne spoznam, nikoli uporabil, si pa predstavljam, da so to funkcije, ki jih kličeš v svojem programu.
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Sob Dec 08, 2012 11:33 am    Naslov sporočila:   Odgovori s citatom

nevem, kaj je točno narobe, če jih odstranim, program deluje normalno..če jih dodam..pa enostavno komunikacija na UART2 ne deluje.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 11:51 am    Naslov sporočila:   Odgovori s citatom

Težko rečem, ali je možno, da si na knap z RAM-omo?

Če jih odstraniš veljajo nastavitve iz Options > Compiler > chip
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Sob Dec 08, 2012 12:02 pm    Naslov sporočila:   Odgovori s citatom

Neverjamem, da sem na knap z ram-om, ker dejansko na displayu prikažem le prejeti string..v programu je pa še le interupt za prijem stirnga.
cca 40 vrstic..
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3359
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Sob Dec 08, 2012 12:38 pm    Naslov sporočila:   Odgovori s citatom

In kakšne nastavitve najdeš če greš na

Options > Compiler > chip
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 3.64
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Sob Dec 08, 2012 12:49 pm    Naslov sporočila:   Odgovori s citatom

Nastavljeno tako :


sll.png
 Opis:
 Velikost datoteke:  30.57 KB
 Pogledana:  4 krat

sll.png


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
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  Naslednja
Stran 1 od 2

 
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group