Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

pomoc s odosielanim dat do telefonu

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> GSM / CDMA / LTE technika a telefony
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
LordMorpheus



Založen: Jan 03, 2007
Příspěvky: 24
Bydliště: Poprad

PříspěvekZaslal: út květen 29 2007, 15:42    Předmět: pomoc s odosielanim dat do telefonu Citovat

Mam jeden mensi problem. Odosielam data (cislo 0910012345) do telefonu . normalne sa tam cislice vypisuju jak maju byt lenze niekedy (skoro vzdy) par prvych cislic vynecha. niekedy jednu dve, ale niekedy aj sest prvych chyba. neviete cim to moze byt?
Len sa ucim programovat tak ma prosim hned neukamenujte.

Zdrojovy kod mojho programu:
kód:



   INCLUDE   "P16F84A.INC"
   LIST   P=16F84A,R=DEC
      
   __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

txdat   equ   h'20'
rxdat   equ   h'26'
pocbit   equ   h'21'
citac   equ   h'22'
C1   equ   h'23'
C2   equ   h'24'
C3   equ   h'25'
C4   equ   h'27'
#define   c   3,0      ;CARRY bit v SWR
#define   tx   PORTB,0      ;TxD na uP
#define   rx   PORTB,1      ;RxD na uP
#define   v1   PORTB,3      ;vstup 1
#define   led   PORTB,2      ;LED svieti ked OK



   BSF   STATUS,RP0
   MOVLW   b'00000010'   ;NA uP JE 0=TxD   1=RxD
   MOVWF   TRISB
   BCF   STATUS,RP0

   clrf   PORTB
   BCF   STATUS,C


   call   CAKAJ


   call   JEDEN
   movlw   h'30'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'39'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'31'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'30'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'30'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'31'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'32'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'33'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'34'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'35'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ

   call   JEDEN
   movlw   h'73'
   movwf   txdat
   call   scitx
   call   DVA   
   call   CAKAJ



KONIEC   nop
   goto   KONIEC




JEDEN   movlw   h'41'   ;A
   movwf   txdat
   call   scitx
   movlw   h'54'   ;T
   movwf   txdat
   call   scitx   
   movlw   h'2B'   ;+
   movwf   txdat
   call   scitx   
   movlw   h'43'   ;C
   movwf   txdat
   call   scitx
   movlw   h'4B'   ;K
   movwf   txdat
   call   scitx   
   movlw   h'50'   ;P
   movwf   txdat
   call   scitx
   movlw   h'44'   ;D
   movwf   txdat
   call   scitx
   movlw   h'3D'   ;=
   movwf   txdat
   call   scitx
   movlw   h'22'   ;"
   movwf   txdat
   call   scitx
   RETURN


DVA   movlw   h'22'   ;"
   movwf   txdat
   call   scitx
   movlw   h'0D'   ;<CR>
   movwf   txdat
   call   scitx
   RETURN



scitx   bsf   tx   ;v TXDAT musí být data pro vysílání
   movlw   9   ;do POCBITu 9
   movwf   pocbit
   bcf   tx   ;start bit
st31    movlw   12   ;casovani 52us (Tbit)
   movwf   citac   ;pozad.cas (us)-12IC/3IC
st31a   decfsz   citac,f
   goto   st31a
   decfsz   pocbit,f;test na konec odvys. bytu
   goto   s51
   bsf   tx   ;stop bit
    movlw   12   ;casovani 52us (Tbit)=délka stop bitu
   movwf   citac   ;pozad.cas (us)-2IC/3IC
st32   decfsz   citac,f
   goto   st32
   return
s51   rrf   txdat,f
   btfsc   c   ;test na stav aktuálního bitu
   goto   s4h
   bcf   tx
   goto   s41
s4h   bsf   tx
s41   goto   st31


scirx   bsf   c
   clrf   rxdat
   rrf   rxdat,f
s1   btfsc   rx   ;test na start bit
   goto   s1
    movlw   6   ;casování 26us (Tbit/2)
   movwf   citac   ;požad.eas (us)-4IC/3IC
st05   decfsz   citac,f
   goto   st05
st1    movlw   13   ;casovani 52us (Tbit)
   movwf   citac   ;pozad.cas (us)-12IC/3IC
st1a   decfsz   citac,f
   goto   st1a
   btfsc   rx   ;vzorkovani RX
   goto   sch
   bcf   c
   goto   s2
sch   bsf   c
s2   rrf   rxdat,f
   btfss   c   ;test na konec byte
   goto   st1
    movlw   7   ;casovani 52us (Tbit)-cas pro dobihnutí byte
   movwf   citac   ;požad.eas (us)-12IC/3IC
st1b   decfsz   citac,f
   goto   st1b
   return      ;poijatá data jsou uložena v RXDAT



CAKAJ   MOVLW   5
   MOVWF   C1
CAKAJ3   MOVLW   255
   MOVWF   C2
CAKAJ2   MOVLW   255
   MOVWF   C3
CAKAJ1   DECFSZ   C3,1
   GOTO   CAKAJ1
   DECFSZ   C2,1
   GOTO   CAKAJ2
   DECFSZ   C1,1
   GOTO   CAKAJ3
   RETURN

   end

_________________
Žiadne hovno nie je dokonalé. Každé má svoje muchy.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: út květen 29 2007, 18:58    Předmět: Citovat

Kdyby to byl ASM pro ATMEL, tak bych se v něm možná vyznal, PIC už se odmítám učit, už teď mám v hlavě guláš.

Každopádně je dobrý použít druhej počítač jako logger a pohlídat si takový věci, jako chyby parity nebo špatně nastavená rychlost portu. Taky je potřeba počkat, až se znak odešle (přes příznak přerušení, ne časovací smyčkou) a teprve potom posílat další.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> GSM / CDMA / LTE technika a telefony Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.20 sekund