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í 

PIC16F877A a PIC16F627A zlobí UART
Jdi na stránku Předchozí  1, 2, 3  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: po leden 24 2011, 23:36    Předmět: Citovat

Jsem to ale blbec, vůbec mne nenapadlo použít Subtract a pak testovat příznak ve STATUSu ... to je hodně velké zjednodušení ... díky moc.
A koukám, že jsem opět přehodil testování TXIF až za naloadování TXREG .. bože jak je člověk blbej když civí půl dne na tu samou věc ... S 627 si pohraji zítra, prozatím mnohokrát děkuji za pomoc, občasné nakopnutí a inspiraci. Zítra dám dohromady 627 snad to bude běhat ..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: út leden 25 2011, 15:32    Předmět: Citovat

Aj toto
kód:

 MOVLW konstanta
 XORWF reg,w
 BTFSC STATUS,z
 GOTO  Zhoda

funguje ....
niekedy je vhodnejší tento inokedy so SUBWF... podľa toho či je potrebné o výsledku vedieť viac ( nastavuje c,dc,z ), alebo stačí z a c,dc zostáva nezmenené.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: út leden 25 2011, 21:22    Předmět: Citovat

Zdravím, tak jsem teda ještě doupravil oba kody, teď již komunikace mezi nimi naběhne, ovšem data jsou pořád stejná nezávisle na vstupu AD. Bohužel nevím kde je chyba ...


mcu.zip
 Komentář:

Stáhnout
 Soubor:  mcu.zip
 Velikost:  2.93 kB
 Staženo:  62 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: út leden 25 2011, 22:59    Předmět: Citovat

Synchro
- vyšleš 0X55
-naplň pocitadlá na hoci aj na 50ms
- kontrola prijímačaFERR,OERR
-test RCIF? ak je... príjem a kontrola na 0XAA ak OK skoncil synchro
---ak nie je dekrementuj pocitadlá o 1
-----vynulonané pocitadlá? Ak áno ides znova synchto
-----este nevynulované vrát sa na test testRCIF vyssie

skoncil synchro

tu sa ide klasicky pošleš kod
naplň pocitadlá na hoci aj na 50ms
kontrola prijímačaFERR,OERR pri chybe oprav a ide "Synchro"
čakáš príjem podobne ako pri synchro
v čakacej slučke je testRCIF?
ak neprídu data do uplynutia času ide "synchro"
prisli data ide sa ďalej na nové data
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: út leden 25 2011, 23:43    Předmět: Citovat

kód:

Synchro
      MOVLW   0x55
                 BTFSS   PIR1,TXIF        ;
                 GOTO      $-1            ;
           MOVWF   TXREG            ;

      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
      GOTO   RESTARTPRIJMU   ;   
      BTFSC   RCSTA,FERR      ;TEST CHYBY PRIJMU
      GOTO   RESTARTPRIJMU   ;
      MOVLW 0x21  ;33 DEC
                MOVWF TMP1
                MOVLW 0x76  ;118 DEC
                MOVWF TMP0
CykSynchro
      BTFSC   PIR1,RCIF      
                GOTO        TestujNa0XAA
                CALL          PocitadloMinusJedna
                ANDLW       0XFF                   ;test W
                BTFSC        STATUS,Z   
                GOTO         Synchro              ; podol čas
                GOTO         CykSynchro        ; ešte nepadol
TestujNa0XAA
                movf          RCREG,0
                movwf        DATA
                movlw        0XAA
                subwf         DATA,0
                btfss          STATUS,Z
                goto          Synchro
SynchroSkoncilo
.
.
.
.
.
PocitadloMinusJedna
               
        DECFSZ TMP0,F
        RETLW 0XFF          ;este nepadol cas
        DECFSZ TMP1,F
        RETLW 0XFF          ; este nepadol
        RETLW 0               ;je zle padol cas
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: st leden 26 2011, 18:54    Předmět: Citovat

RX u 627 po zapnutí samovolě resetuje (osciluje) i když k němu nic není připojeno, TX vysílá 0X55 a 877 v pořádku přijímá a vrací 0xAA, ale vzhledem k oscilaci vstupu RX 627 se signál nedostane dovnitř 627 ... dle datasheetu : pokud OERR set (overload FIFO RCREG), tak odstranit resetem přijímače CREN a spustit SYNCHRO, pokud OERR set, tak nebyl přijat stop bit, odtranění přečtením RCREG a spuštěním SYNCHRO ... kde je tedy chyba to by mne zajímalo ...

kód:


 


      LIST P=16F627
      INCLUDE<P16F627.INC>
      __CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC


   
TEMP   EQU   23H
TEMP1   EQU   24H
K0L      EQU   25H
K0H      EQU   26H
K1L      EQU   27H
K1H      EQU   28H
TMP0   EQU   29H
TMP1   EQU   30H


      ORG      00H
      GOTO   INIT
;----------------------------------------------------------------------------------------
DELAY1mS
      MOVLW 0x07  ;7 DEC
        MOVWF TMP1
        MOVLW 0x7D  ;125 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-3
      RETURN
      
DELAY5mS      
      MOVLW 0x21  ;33 DEC
        MOVWF TMP1
        MOVLW 0x76  ;118 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-3
      RETURN

PocitadloMinusJedna
               
        DECFSZ TMP0,F
        RETLW 0XFF          ;este nepadol cas
        DECFSZ TMP1,F
        RETLW 0XFF          ; este nepadol
        RETLW 0             ;je zle padol cas

;------------------------------------------------------------------------------------------
INIT      
      MOVLW   B'00000111'
      MOVWF   CMCON
      BSF      STATUS,RP0      ;BANKA1
            
      MOVLW   B'00000000'      ;VYSTUPNI PORT A
      MOVWF   TRISA
      
      MOVLW   B'00000000'      ;REZERVACE PORTU B,1,2 PRO SERIOVY PRENOS
      MOVWF   TRISB
      CLRF   PORTB
      
      MOVLW   D'129'         ;KONSTANTA PRO VYPOCET BAUD RATE
      MOVWF   SPBRG      
      
      MOVLW    B'00100000'    ;zapnuti TXEN
      MOVWF    TXSTA         ;
      CLRF    PIE1          ;Vypnout preruseni na periferiich
      BCF     STATUS,RP0      ;BANKA0
      
      BSF      RCSTA,SPEN      ;POVOLENI SERIOVEHO PORTU
      BSF      RCSTA,CREN      ;POVOLENÍ PRIJMU

;--------------------------------------------------------------------------------------------
MOVF   RCREG
MOVF   RCREG

SYNCHRO
      MOVLW   0x55
        BTFSS   PIR1,TXIF        ;
        GOTO    $-1            ;
        MOVWF   TXREG            ;

         BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
CykSynchro
         BTFSC   PIR1,RCIF     
        GOTO    TestujNa0XAA
        CALL    PocitadloMinusJedna
          ANDLW   0XFF                   ;test W
          BTFSC   STATUS,Z   
         GOTO    SYNCHRO              ; podol čas
          GOTO    CykSynchro        ; ešte nepadol

TestujNa0XAA
        movf    RCREG,0
          movwf   TEMP
          movlw   0XAA
         subwf   TEMP,0
        btfss   STATUS,Z
         goto    SYNCHRO
      goto   PRENOSK0
      
         
RESTARTPRIJMU
      BCF      RCSTA,4
      BSF      RCSTA,4
      GOTO   SYNCHRO
CHYBASTOPBITU
      MOVF   RCREG
      GOTO   SYNCHRO
;-------------------------------------------------------------------------------------------------------------------------
      
PRENOSK0
      
   
      MOVLW   B'00000001'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM1
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM1
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM1        ; ešte nepadol
      
PRIJEM1
      MOVF   RCREG,0
      MOVWF   K0L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM2
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM2
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM2        ; ešte nepadol


PRIJEM2
      
      MOVF   RCREG,0
      MOVWF   K0H            ;DAT A JEJICH ULOZENI
      
;-------------------------------------------------------------------------------------------------------------------------

PRENOSK1
      
   
      MOVLW   B'00000010'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM3
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM3
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM3        ; ešte nepadol
      
PRIJEM3
      MOVF   RCREG,0
      MOVWF   K1L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM4
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM4
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM4        ; ešte nepadol


PRIJEM4
      
      MOVF   RCREG,0
      MOVWF   K1H            ;DAT A JEJICH ULOZENI
      

      GOTO   PRENOSK0





      END


   
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: st leden 26 2011, 20:07    Předmět: Citovat

V INIT oprav TRISB pre RB1.... vstup. RB2...výstup
Tam kde je inicializácia TRISB je nezmyselný CLRF PORTB...toto vyhoď, lebo je to de facto v BANK1 clrf trisb, čiže portB na výstup otočený!?!

Asi tak zatiaľ to bude ten problém
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: st leden 26 2011, 21:34    Předmět: Citovat

FUNGUJE !!! děkuji mnohokrát za pomoc sám bych to bohužel nezvládl ... teprve s těmito procesory začínám .... opravdu mnohé díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: st leden 26 2011, 22:20    Předmět: Citovat

Ešte by som to vylepšil presunom týchto testov (3x)
kód:
 
TestujNa0XAA   aj do  PRIJEM1 aj do  PRIJEM2

         BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO    RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
         GOTO   CHYBASTOPBITU


pred inštruciu "prečítania" RCREG ... čo je samotné spracovanie prijatého znaku. Takto to bude "kóšer", tak sa to správne má urobiť.
kód:

      MOVF   RCREG,0
.
.


lebo RCIF sa vygeneruje aj pri obidvoch chybách prenosu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: ne leden 30 2011, 16:49    Předmět: Citovat

Zdravím, tak jsem tu zas, vše komunikuje tak jak má, přenáším více kanálů, vše ok. Ovšem, konstrukci jsem rozšířil o bezdrátové RTX-mid 5v moduly od AURElu, takže UART chci přenášet bezdrátově. Dodržel jsem všechny časy dle katalogu aurelu pro inicializaci, přepínání příjmu a vysílání .. mám ošetřeno aby nedošlo k ustřihnutí odchozích dat, než jsou odvysíláná, z nějakého důvodu se oba procesory nechtějí zasynchronizovat ... přikládám oba zdrojáky a časové diagramy z katalogu aurel.

kód:


 


      LIST P=16F627
      INCLUDE<P16F627.INC>
      __CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC


   
TEMP      EQU   23H
TEMP1      EQU   24H
K0L         EQU   25H
K0H         EQU   26H
K1L         EQU   27H
K1H         EQU   28H
K2L         EQU   29H
K2H         EQU   30H
ZNAMENKO   EQU   31H
TMP0      EQU   32H
TMP1      EQU   33H

#DEFINE      RXTX   PORTB,3
#DEFINE      ENABLE   PORTB,0


      ORG      00H
      GOTO   INIT
;-------------------------------ZACATEK PODPROGRAMU---------------------------------------------------------


PocitadloMinusJedna
               
        DECFSZ TMP0,F
        RETLW 0XFF          ;este nepadol cas
        DECFSZ TMP1,F
        RETLW 0XFF          ; este nepadol
        RETLW 0             ;je zle padol cas

;--------------------------------------------------------------------

RXTOTX
      BSF      RXTX
      CALL   WAIT400uS
      RETURN
;---------------------------------------------------------------------

TXTORX
      BSF      STATUS,RP0   ;BANKA1      ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
      BTFSS   TXSTA,TRMT               ;   -,,-
      GOTO   $-1                  ;   -,,-
      BCF      STATUS,RP0   ;BANKA0      ;   -,,-
      CALL   WAIT400uS
      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      CALL   WAIT200uS
      CALL   WAIT200uS
      RETURN

;----------------------------------------------------------------------

WAIT20uS
      MOVLW 0x22  ;34 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;----------------------------------------------------------------------

WAIT40uS
      MOVLW 0x43  ;67 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;------------------------------------------------------------------------

WAIT200uS
      MOVLW 0x04  ;4 DEC
        MOVWF TMP1
        MOVLW 0x52  ;82 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;----------------------------------------------------------------------

WAIT400uS
      MOVLW 0x03  ;3 DEC
        MOVWF TMP1
        MOVLW 0x0DD  ;221 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;-------------------------------KONEC PODPROGRAMU-----------------------------------------------------------
INIT      
      MOVLW   B'00000111'
      MOVWF   CMCON
      BSF      STATUS,RP0      ;BANKA1
            
      MOVLW   B'00000000'      ;VYSTUPNI PORT A
      MOVWF   TRISA
      
      MOVLW   B'00000110'      ;REZERVACE PORTU B,1,2 PRO SERIOVY PRENOS
      MOVWF   TRISB
      
      MOVLW   D'129'         ;KONSTANTA PRO VYPOCET BAUD RATE
      MOVWF   SPBRG      
      
      MOVLW    B'00100000'    ;zapnuti TXEN
      MOVWF    TXSTA         ;
      CLRF    PIE1          ;Vypnout preruseni na periferiich
      BCF     STATUS,RP0      ;BANKA0
      
      BSF      RCSTA,SPEN      ;POVOLENI SERIOVEHO PORTU
      BSF      RCSTA,CREN      ;POVOLENÍ PRIJMU

;INICIAKZACE BEZDRATOVEHO MODULU
      BSF      ENABLE
      CALL   WAIT20uS
      BSF      RXTX
      CALL   WAIT400uS

;--------------------------------------------------------------------------------------------
MOVF   RCREG
MOVF   RCREG

;---------------------------------SYNCHRONIZACE S DRUHYM PROCESOREM---------------------------
SYNCHRO
      CALL   RXTOTX
      MOVLW   0x55         ;POSLI 55H, TESTUJ NECHTENE PREPSANI TXREG
        BTFSS   PIR1,TXIF       ;   -,,-
        GOTO    $-1               ;   -,,-
        MOVWF   TXREG           ;   -,,-
      CALL   TXTORX
      
         BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVLW    0x21  ;33 DEC   ;CEKEJ 50MS
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0

CykSynchro
         BTFSC   PIR1,RCIF               ;
        GOTO    TestujNa0XAA         ;PRISLO ZPET AAH ?
        CALL    PocitadloMinusJedna      ;ODECTI 1 Z INTERVALU 50MS
          ANDLW   0XFF                      ;test W, NA RETLW
          BTFSC   STATUS,Z   
         GOTO    SYNCHRO               ;ČAS UPLYNUL
          GOTO    CykSynchro            ;ČAS NEUPLYNUL

TestujNa0XAA
        movf    RCREG,0
          movwf   TEMP
          movlw   0XAA
         subwf   TEMP,0
        btfss   STATUS,Z
         goto    SYNCHRO
      call   RXTOTX
      goto   PRENOSK0
      
         
RESTARTPRIJMU
      BCF      RCSTA,4
      BSF      RCSTA,4
      GOTO   SYNCHRO
CHYBASTOPBITU
      MOVF   RCREG
      GOTO   SYNCHRO
;-------------------------------------------------------------------------------------------------------------------------
      
PRENOSK0
      
   
      MOVLW   B'00000001'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM1
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM1
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM1        ; ešte nepadol
      
PRIJEM1
      MOVF   RCREG,0
      MOVWF   K0L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM2
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM2
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM2        ; ešte nepadol


PRIJEM2
      
      MOVF   RCREG,0
      MOVWF   K0H            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX
;-------------------------------------------------------------------------------------------------------------------------

PRENOSK1
      
   
      MOVLW   B'00000010'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM3
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM3
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM3        ; ešte nepadol
      
PRIJEM3
      MOVF   RCREG,0
      MOVWF   K1L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM4
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM4
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM4        ; ešte nepadol


PRIJEM4
      
      MOVF   RCREG,0
      MOVWF   K1H            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX
;-------------------------------------------------------------------------------------------------------------------------------

PRENOSK2
      
   
      MOVLW   B'00000100'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM5
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM5
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM5        ; ešte nepadol
      
PRIJEM5
      MOVF   RCREG,0
      MOVWF   K2L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM6
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM6
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM6        ; ešte nepadol


PRIJEM6
      
      MOVF   RCREG,0
      MOVWF   K2H            ;DAT A JEJICH ULOZENI
      

CYKPRIJEM7
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM7
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM7        ; ešte nepadol


PRIJEM7
      
      MOVF   RCREG,0
      MOVWF   ZNAMENKO            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX



      GOTO   PRENOSK0


      




      END


   



kód:




                     LIST P=16F877A
                     INCLUDE<P16F877A.INC>
                     __CONFIG _PWRTE_ON & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC & _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF


TMP0      EQU      22H
TMP1      EQU      23H
VYBER      EQU      24H
ZNAMENKO   EQU      25H

#DEFINE      ENABLE   PORTC,1
#DEFINE      RXTX   PORTC,2


      ORG      00H
      GOTO   INIT

;----------------------------ZACATEK PODPROGRAMU--------------------------------------------------

ADPREVOD   
   
      MOVLW    0x05           ;CEKANI 750uS PRED ZAHAJENIM PREVODU
        MOVWF    TMP1
        MOVLW    0x0DD           ;
        MOVWF    TMP0
        DECFSZ    TMP0,1         ;
        GOTO    $-1
        DECFSZ    TMP1,1         ;
        GOTO    $-3
      
      BSF      ADCON0,2      ;zahejni prevodu
      BTFSC   ADCON0,2      ;zjistovani dokonceni prevodu
      GOTO   $-1            ;...
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


VYSILEJL
      BSF         STATUS,RP0      ;BANKA1   (ADRESL JE V BANCE 1 !!! )     
         MOVF         ADRESL,W         ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
         BCF         STATUS,RP0      ;BANKA0
         BTFSS      PIR1,TXIF       ;TESTOVANI  ABYCHOM SI TXREG NEPREPSALI
         GOTO         $-1            ;
         MOVWF       TXREG             ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      RETURN


;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

VYSILEJH     
         MOVF         ADRESH,W      ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
         BTFSS      PIR1,TXIF     ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO         $-1            ;
         MOVWF       TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
         RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

VYSILEJZNAMENKO   
         MOVF      ZNAMENKO,W
         BTFSS      PIR1,TXIF     ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO         $-1            ;
         MOVWF       TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
         RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RXTOTX
      BSF      RXTX
      CALL   WAIT400uS
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TXTORX
      BSF      STATUS,RP0   ;BANKA1      ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
      BTFSS   TXSTA,TRMT               ;   -,,-
      GOTO   $-1                  ;   -,,-
      BCF      STATUS,RP0   ;BANKA0      ;   -,,-
      CALL   WAIT400uS
      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      CALL   WAIT200uS
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT20uS
      MOVLW 0x22  ;34 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT40uS
      MOVLW 0x43  ;67 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT200uS
      MOVLW 0x04  ;4 DEC
        MOVWF TMP1
        MOVLW 0x52  ;82 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT400uS
      MOVLW 0x03  ;3 DEC
        MOVWF TMP1
        MOVLW 0x0DD  ;221 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;+++++++++++++++++++++++++++++++++++KONEC PODPROGRAMU++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;-----------------------------------INICIALIZACE PERIFERII--------------------------------------------
      
INIT   
      BCF    STATUS,RP0      ;BANKA0
      BCF      STATUS,RP1      ;BANKA0
      CLRF   PORTA
      CLRF   PORTE
      CLRF   PORTC
      CLRF   PORTB
      BSF      STATUS,RP0      ;BANKA 1
      MOVLW   B'00000111'      ;INICIALZICAZE PORTU
      MOVWF   CMCON         ;
      MOVLW   B'10000000'      ;INICIALIZACE AD PREVODNIKU
      MOVWF   ADCON1         ;
      MOVLW   B'00111111'      ;INICIALIZACE PORTUA RA0-RA5 AD VSTUPY
      MOVWF   TRISA         ;
      MOVLW   B'00000111'      ;INICIALIZACE PORTUE RE0-RE2 AD VSTUPY
      MOVWF   TRISE         ;
      MOVLW   B'00000000'      ;INICIALIZACE PORTUB VSE VYSTUP
      MOVWF   TRISB         ;
      
      CLRF   TRISC         ;PortC 7,6 pro USART, 0 pro detekci zaporneho napeti cidla teploty
      MOVLW   B'11000001'      ;
      MOVWF   TRISC         ;
                        
                        
      MOVLW    D'129'         ;konstanta pro vypocet BAUD RATE
      MOVWF    SPBRG          ;
                        ;
      
      MOVLW    B'00100000'    ;zapnuti TXEN
      MOVWF    TXSTA         ;
      CLRF    PIE1          ;Vypnout preruseni na periferiich
      BCF     STATUS,RP0      ;BANKA0

                        
      MOVLW    B'10010000'    ;zapnuti UART portu a prijmu
      MOVWF    RCSTA

;INICIALIZACE BEZDRATOVEHO MODULU
   
      BSF      ENABLE         
      CALL   WAIT20uS
      BSF      RXTX
      CALL   WAIT200uS
      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      CALL   WAIT200uS

;------------------------------------------------KONEC INICIALIZACE-------------------------------------------------------------------------      

START   BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
      GOTO   RESTARTPRIJMU   ;   
      BTFSC   RCSTA,FERR      ;TEST CHYBY PRIJMU
      GOTO   CHYBARAMEC   ;
      BTFSS   PIR1,RCIF      ;ceka na prichozi data (dokud neni naplnen RCREG)
      GOTO   START         ;
      MOVF   RCREG,0
      MOVWF   VYBER
      MOVWF   PORTB         ;zobrazeni prichozich dat na LED
      GOTO   MENU

RESTARTPRIJMU
      BCF      RCSTA,4
      BSF      RCSTA,4
      GOTO   START
CHYBARAMEC
      MOVF   RCREG,0
      GOTO   START

MENU   
         MOVLW   0X55
         SUBWF   VYBER,0           ;porovnaj  ak W==VYBER>je zero v STATUS
         BTFSC   STATUS,Z       ; Zero indikator
         GOTO      SYNCHRO        ; nie call treba odpovedat 0xAA a ide START
         MOVLW   B'00000001'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK0
         MOVLW     B'00000010'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK1
      MOVLW     B'00000100'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK2
      GOTO   START


   
SYNCHRO                        ;SYNCHRONIZACE (POSLI ZPET 0xAA) (POKUD 0x55 PRIJATO A BEZ CHYB)
      CALL   RXTOTX
         BTFSS   PIR1,TXIF         ;TESTOVANI  ABYCHOM SI TXREG NEPREPSALI
         GOTO   $-1               ;
         MOVLW   0xAA            ;odpoved
         MOVWF   TXREG
         CALL   TXTORX
      GOTO    START           ; bude sa cakat odznova povel alebo synchro



PRENOSK0
      CALL   RXTOTX
      MOVLW   B'11000001'      ; vyber vstupniho kanalu (0) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      CALL   TXTORX
      GOTO   START

PRENOSK1
      CALL   RXTOTX
      MOVLW   B'11001001'      ; vyber vstupniho kanalu (1) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      CALL   TXTORX
      GOTO   START


   


PRENOSK2
      CALL   RXTOTX
      BTFSC   PORTC,0         ;POKUD TEPLOTA KLADNA, TAK PREVOD S NORMALNIM VREF+. POKUD ZAPORNA TAK VREF+ -5V
      GOTO   MINUSHODNOTA   
      MOVLW   B'11010001'      ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      BCF      ZNAMENKO,0      ;TEPLOTA JE KLADNA
      CALL   VYSILEJZNAMENKO
      CALL   TXTORX
      GOTO   START
      
MINUSHODNOTA
      BSF      STATUS,RP0      ;BANKA1
      MOVLW   B'10000001'      ;NASTAVENI VREF+ RA3
      MOVWF   ADCON1
      BCF      STATUS,RP0
      MOVLW   B'11010001'      ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      BSF      ZNAMENKO,0      ;teplota je zaporna
      CALL   VYSILEJZNAMENKO   
      BSF      STATUS,RP0      ;BANKA1
      BCF      ADCON1,0      ;NASTAVENI VREF+ +5V
      BCF      STATUS,RP0      ;BANKA0
      CALL   TXTORX
      GOTO   START

PRENOSK3
PRENOSK4   

      GOTO   START


      
      END





pwrdn-rx.jpg
 Komentář:

Stáhnout
 Soubor:  pwrdn-rx.jpg
 Velikost:  87.45 kB
 Staženo:  56 krát


pwrdn-tx.JPG
 Komentář:

Stáhnout
 Soubor:  pwrdn-tx.JPG
 Velikost:  78 kB
 Staženo:  66 krát


rx-tx.JPG
 Komentář:

Stáhnout
 Soubor:  rx-tx.JPG
 Velikost:  79.03 kB
 Staženo:  78 krát


tx-rx.JPG
 Komentář:

Stáhnout
 Soubor:  tx-rx.JPG
 Velikost:  97.68 kB
 Staženo:  55 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: ne leden 30 2011, 23:21    Předmět: Citovat

Tak to je podstatne iná situácia ako na drôtoch (na drôtoch duplex,-teraz halfduplex).

-Vysielač musí vysielať NULU-BLANK aspoň 15-25bitov. To sa zaistí po prepnutí RXTOTX patričným čakaním npr. 25x400uS(podľa baude).

-Prijímač na druhej strane to musí vedieť identifikovať ( cca po 11.bite v blanku) povolí prijímač uartu príjem a čaká RCIF.


A v takejto aplikácii, je bezpodmienečne potrebné upraviť testovanie FERR/OVERR ako som napísal vyššie(skôr).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: po leden 31 2011, 1:13    Předmět: Citovat

Super, myslel, jsem si, že problém je v moc malých intervalech mezi příjmem a vysíláním, a měl jsem podezření, že přepnutí vysílání na příjem na druhé starně vyvolá chybu ... hned ráno zkusím přepsat a upravit .. žil jsem v domění, že RF moduly prostě nahradím drátovou komunikaci, ovšem nic není jednoduché jak se zdá ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: po leden 31 2011, 10:22    Předmět: Citovat

Možno by to chcelo aj zabezpečenie dat pridaným kontrolným bytom. Z éteru môže prísť kedykoľvek hocičo, pričom sa nemusí vygenerovať FERR/OVERR. Častými falošnými príjmami budú všelijaké znaky ako 0xFF, 0X7F, 0X3F .... a iba časť z nich bude mať nahodenú FERR.
Prijímač by dáta skontroloval aj s kontrolným bytom a až ich potom použil. Inak by sa buď opäť vyžiadali, alebo zahodili. To závisí od aplikácie.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
walleyman



Založen: May 27, 2008
Příspěvky: 35
Bydliště: Jičín

PříspěvekZaslal: po leden 31 2011, 19:04    Předmět: Citovat

Tak nevim, jestli jsem to pochopil, jelikož to jako nashvál nekomunikuje ... jinak Baudrate mám 2,4k, což znamená 1bit = 400us, 25bitů = 10ms.
Takže po přepnutí RXTOTX následuje čekání 10ms.
Druhá strana:
Před přepnutím TXTORX je zakázán příjem UARTU, po přepnutí čeká 5ms (cca 13bitů), následně zapne příjem a čeká RCIF.
Vložil jsem detekce FERR a OERR.
Pro jistotu přikládám zdrojáky ...

kód:

 


      LIST P=16F627
      INCLUDE<P16F627.INC>
      __CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC


   
TEMP      EQU   23H
TEMP1      EQU   24H
K0L         EQU   25H
K0H         EQU   26H
K1L         EQU   27H
K1H         EQU   28H
K2L         EQU   29H
K2H         EQU   30H
ZNAMENKO   EQU   31H
TMP0      EQU   32H
TMP1      EQU   33H

#DEFINE      RXTX   PORTB,3
#DEFINE      ENABLE   PORTB,0


      ORG      00H
      GOTO   INIT
;-------------------------------ZACATEK PODPROGRAMU---------------------------------------------------------


PocitadloMinusJedna
               
        DECFSZ TMP0,F
        RETLW 0XFF          ;este nepadol cas
        DECFSZ TMP1,F
        RETLW 0XFF          ; este nepadol
        RETLW 0             ;je zle padol cas

;--------------------------------------------------------------------

RXTOTX
      BTFSC   RXTX
      RETURN
      BSF      RXTX
      CALL   WAIT400uS
      CALL   WAIT10mS
      RETURN
;---------------------------------------------------------------------

TXTORX
      BSF      STATUS,RP0   ;BANKA1      ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
      BTFSS   TXSTA,TRMT               ;   -,,-
      GOTO   $-1                  ;   -,,-
      BCF      STATUS,RP0   ;BANKA0      ;   -,,-
      
      BCF      RCSTA,CREN
      
      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      
      CALL   WAIT200uS
      CALL   WAIT5mS
      BSF      RCSTA,CREN
      
      RETURN

;----------------------------------------------------------------------

WAIT20uS
      MOVLW 0x22  ;34 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;----------------------------------------------------------------------

WAIT40uS
      MOVLW 0x43  ;67 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;------------------------------------------------------------------------

WAIT200uS
      MOVLW 0x04  ;4 DEC
        MOVWF TMP1
        MOVLW 0x52  ;82 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;----------------------------------------------------------------------

WAIT400uS
      MOVLW 0x03  ;3 DEC
        MOVWF TMP1
        MOVLW 0x0DD  ;221 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

WAIT10mS
       MOVLW 0x50  ;80 DEC
        MOVWF TMP1
        MOVLW 0x0CF  ;207 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

WAIT5mS
      MOVLW 0x28  ;40 DEC
        MOVWF TMP1
        MOVLW 0x0CF  ;207 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN
;-------------------------------KONEC PODPROGRAMU-----------------------------------------------------------
INIT      
      MOVLW   B'00000111'
      MOVWF   CMCON
      BSF      STATUS,RP0      ;BANKA1
            
      MOVLW   B'00000000'      ;VYSTUPNI PORT A
      MOVWF   TRISA
      
      MOVLW   B'00000110'      ;REZERVACE PORTU B,1,2 PRO SERIOVY PRENOS
      MOVWF   TRISB
      
      MOVLW   D'129'         ;KONSTANTA PRO VYPOCET BAUD RATE
      MOVWF   SPBRG      
      
      MOVLW    B'00100000'    ;zapnuti TXEN
      MOVWF    TXSTA         ;
      CLRF    PIE1          ;Vypnout preruseni na periferiich
      BCF     STATUS,RP0      ;BANKA0
      
      BSF      RCSTA,SPEN      ;POVOLENI SERIOVEHO PORTU
      BSF      RCSTA,CREN      ;POVOLENÍ PRIJMU

;INICIAKZACE BEZDRATOVEHO MODULU
      BSF      ENABLE
      CALL   WAIT20uS
      BSF      RXTX
      CALL   WAIT400uS

;--------------------------------------------------------------------------------------------
MOVF   RCREG
MOVF   RCREG

;---------------------------------SYNCHRONIZACE S DRUHYM PROCESOREM---------------------------
SYNCHRO
      CALL   RXTOTX
      MOVLW   0x55         ;POSLI 55H, TESTUJ NECHTENE PREPSANI TXREG
        BTFSS   PIR1,TXIF       ;   -,,-
        GOTO    $-1               ;   -,,-
        MOVWF   TXREG           ;   -,,-
      CALL   TXTORX
      
         BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVLW    0x21  ;33 DEC   ;CEKEJ 50MS
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0

CykSynchro
         BTFSC   PIR1,RCIF               ;
        GOTO    TestujNa0XAA         ;PRISLO ZPET AAH ?
        CALL    PocitadloMinusJedna      ;ODECTI 1 Z INTERVALU 50MS
          ANDLW   0XFF                      ;test W, NA RETLW
          BTFSC   STATUS,Z   
         GOTO    SYNCHRO               ;ČAS UPLYNUL
          GOTO    CykSynchro            ;ČAS NEUPLYNUL

TestujNa0XAA
        movf    RCREG,0
          movwf   TEMP
          movlw   0XAA
         subwf   TEMP,0
        btfss   STATUS,Z
         goto    SYNCHRO
      call   RXTOTX
      goto   PRENOSK0
      
         
RESTARTPRIJMU
      BCF      RCSTA,4
      BSF      RCSTA,4
      GOTO   SYNCHRO
CHYBASTOPBITU
      MOVF   RCREG
      GOTO   SYNCHRO
;-------------------------------------------------------------------------------------------------------------------------
      
PRENOSK0
      
   
      MOVLW   B'00000001'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM1
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM1
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM1        ; ešte nepadol
      
PRIJEM1
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      
      GOTO   CHYBASTOPBITU
      MOVF   RCREG,0
      MOVWF   K0L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM2
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM2
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM2        ; ešte nepadol


PRIJEM2
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVF   RCREG,0
      MOVWF   K0H            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX
;-------------------------------------------------------------------------------------------------------------------------

PRENOSK1
      
   
      MOVLW   B'00000010'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM3
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM3
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM3        ; ešte nepadol
      
PRIJEM3
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVF   RCREG,0
      MOVWF   K1L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM4
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM4
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM4        ; ešte nepadol


PRIJEM4
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
      
      MOVF   RCREG,0
      MOVWF   K1H            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX
;-------------------------------------------------------------------------------------------------------------------------------

PRENOSK2
      
   
      MOVLW   B'00000100'      ;ve W je ulozena informace a MCU ji odesila pres UART ven (KANAL 0)
      BTFSS   PIR1,TXIF        ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO      $-1            ;
      MOVWF    TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      CALL   TXTORX
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
      BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU
               
      MOVLW    0x21  ;33 DEC
        MOVWF    TMP1
        MOVLW    0x76  ;118 DEC
        MOVWF    TMP0
   
CYKPRIJEM5
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM5
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM5        ; ešte nepadol
      
PRIJEM5
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU      

      MOVF   RCREG,0
      MOVWF   K2L            ;DAT A JEJICH ULOZENI
   
CYKPRIJEM6
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM6
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM6        ; ešte nepadol


PRIJEM6
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU      

      MOVF   RCREG,0
      MOVWF   K2H            ;DAT A JEJICH ULOZENI
      

CYKPRIJEM7
      BTFSC    PIR1,RCIF     
        GOTO    PRIJEM7
        CALL    PocitadloMinusJedna
        ANDLW   0XFF                   ;test W
        BTFSC   STATUS,Z   
        GOTO    SYNCHRO              ; podol čas
        GOTO    CYKPRIJEM7        ; ešte nepadol


PRIJEM7
      BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
         GOTO      RESTARTPRIJMU   ;jdi na opravu chyby prijmu
         BTFSC   RCSTA,FERR
      GOTO   CHYBASTOPBITU      

      MOVF   RCREG,0
      MOVWF   ZNAMENKO            ;DAT A JEJICH ULOZENI
      CALL   RXTOTX



      GOTO   PRENOSK0


      




      END


   


kód:




                     LIST P=16F877A
                     INCLUDE<P16F877A.INC>
                     __CONFIG _PWRTE_ON & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _HS_OSC & _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF


TMP0      EQU      22H
TMP1      EQU      23H
VYBER      EQU      24H
ZNAMENKO   EQU      25H

#DEFINE      ENABLE   PORTC,1
#DEFINE      RXTX   PORTC,2


      ORG      00H
      GOTO   INIT

;----------------------------ZACATEK PODPROGRAMU--------------------------------------------------

ADPREVOD   
   
      MOVLW    0x05           ;CEKANI 750uS PRED ZAHAJENIM PREVODU
        MOVWF    TMP1
        MOVLW    0x0DD           ;
        MOVWF    TMP0
        DECFSZ    TMP0,1         ;
        GOTO    $-1
        DECFSZ    TMP1,1         ;
        GOTO    $-3
      
      BSF      ADCON0,2      ;zahejni prevodu
      BTFSC   ADCON0,2      ;zjistovani dokonceni prevodu
      GOTO   $-1            ;...
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


VYSILEJL
      BSF         STATUS,RP0      ;BANKA1   (ADRESL JE V BANCE 1 !!! )     
         MOVF         ADRESL,W         ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
         BCF         STATUS,RP0      ;BANKA0
         BTFSS      PIR1,TXIF       ;TESTOVANI  ABYCHOM SI TXREG NEPREPSALI
         GOTO         $-1            ;
         MOVWF       TXREG             ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
      RETURN


;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

VYSILEJH     
         MOVF         ADRESH,W      ;do W je ulozena informace a MCU ji nasledne odesila pres UART ven
         BTFSS      PIR1,TXIF     ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO         $-1            ;
         MOVWF       TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
         RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

VYSILEJZNAMENKO   
         MOVF      ZNAMENKO,W
         BTFSS      PIR1,TXIF     ;TESTOVANI ABYCHOM SI TXREG NEPREPSALI  vždy pred zápisom !
         GOTO         $-1            ;
         MOVWF       TXREG          ;presunout 8-bit hodnotu do registru TXREG (Bank0) => nacteni dat zacina vysilani
         RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RXTOTX   
      BTFSC   RXTX
      RETURN
      BSF      RXTX
      CALL   WAIT400uS
      CALL   WAIT10mS
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TXTORX
      BSF      STATUS,RP0   ;BANKA1      ;CEKA DOKUD TSR NENI PRAZDNY ABYCHOM SI NEUFIKLI ODCHOZI DATA
      BTFSS   TXSTA,TRMT               ;   -,,-
      GOTO   $-1                  ;   -,,-
      BCF      STATUS,RP0   ;BANKA0      ;   -,,-
      
      BCF      RCSTA,CREN      

      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      
      CALL   WAIT200uS
      CALL   WAIT5mS
      BSF      RCSTA,CREN
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
WAIT20uS
      MOVLW 0x22  ;34 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT40uS
      MOVLW 0x43  ;67 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
      RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT200uS
      MOVLW 0x04  ;4 DEC
        MOVWF TMP1
        MOVLW 0x52  ;82 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAIT400uS
      MOVLW 0x03  ;3 DEC
        MOVWF TMP1
        MOVLW 0x0DD  ;221 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

WAIT10mS
       MOVLW 0x50  ;80 DEC
        MOVWF TMP1
        MOVLW 0x0CF  ;207 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

WAIT5mS
      MOVLW 0x28  ;40 DEC
        MOVWF TMP1
        MOVLW 0x0CF  ;207 DEC
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
      RETURN

;+++++++++++++++++++++++++++++++++++KONEC PODPROGRAMU++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;-----------------------------------INICIALIZACE PERIFERII--------------------------------------------
      
INIT   
      BCF    STATUS,RP0      ;BANKA0
      BCF      STATUS,RP1      ;BANKA0
      CLRF   PORTA
      CLRF   PORTE
      CLRF   PORTC
      CLRF   PORTB
      BSF      STATUS,RP0      ;BANKA 1
      MOVLW   B'00000111'      ;INICIALZICAZE PORTU
      MOVWF   CMCON         ;
      MOVLW   B'10000000'      ;INICIALIZACE AD PREVODNIKU
      MOVWF   ADCON1         ;
      MOVLW   B'00111111'      ;INICIALIZACE PORTUA RA0-RA5 AD VSTUPY
      MOVWF   TRISA         ;
      MOVLW   B'00000111'      ;INICIALIZACE PORTUE RE0-RE2 AD VSTUPY
      MOVWF   TRISE         ;
      MOVLW   B'00000000'      ;INICIALIZACE PORTUB VSE VYSTUP
      MOVWF   TRISB         ;
      
      CLRF   TRISC         ;PortC 7,6 pro USART, 0 pro detekci zaporneho napeti cidla teploty
      MOVLW   B'11000001'      ;
      MOVWF   TRISC         ;
                        
                        
      MOVLW    D'129'         ;konstanta pro vypocet BAUD RATE
      MOVWF    SPBRG          ;
                        ;
      
      MOVLW    B'00100000'    ;zapnuti TXEN
      MOVWF    TXSTA         ;
      CLRF    PIE1          ;Vypnout preruseni na periferiich
      BCF     STATUS,RP0      ;BANKA0

                        
      MOVLW    B'10010000'    ;zapnuti UART portu a prijmu
      MOVWF    RCSTA

;INICIALIZACE BEZDRATOVEHO MODULU
   
      BSF      ENABLE         
      CALL   WAIT20uS
      BSF      RXTX
      CALL   WAIT200uS
      BCF      RXTX
      CALL   WAIT40uS
      BCF      ENABLE
      CALL   WAIT20uS
      BSF      ENABLE
      CALL   WAIT200uS

;------------------------------------------------KONEC INICIALIZACE-------------------------------------------------------------------------      

START   BTFSC   RCSTA,OERR      ;TEST CHYBY PRIJMU
      GOTO   RESTARTPRIJMU   ;   
      BTFSC   RCSTA,FERR      ;TEST CHYBY PRIJMU
      GOTO   CHYBARAMEC   ;
      BTFSS   PIR1,RCIF      ;ceka na prichozi data (dokud neni naplnen RCREG)
      GOTO   START         ;
      MOVF   RCREG,0
      MOVWF   VYBER
      MOVWF   PORTB         ;zobrazeni prichozich dat na LED
      GOTO   MENU

RESTARTPRIJMU
      BCF      RCSTA,4
      BSF      RCSTA,4
      GOTO   START
CHYBARAMEC
      MOVF   RCREG,0
      GOTO   START

MENU   
         MOVLW   0X55
         SUBWF   VYBER,0           ;porovnaj  ak W==VYBER>je zero v STATUS
         BTFSC   STATUS,Z       ; Zero indikator
         GOTO      SYNCHRO        ; nie call treba odpovedat 0xAA a ide START
         MOVLW   B'00000001'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK0
         MOVLW     B'00000010'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK1
      MOVLW     B'00000100'
         SUBWF   VYBER,0
         BTFSC   STATUS,Z
         GOTO      PRENOSK2
      GOTO   START


   
SYNCHRO                        ;SYNCHRONIZACE (POSLI ZPET 0xAA) (POKUD 0x55 PRIJATO A BEZ CHYB)
      CALL   RXTOTX
         BTFSS   PIR1,TXIF         ;TESTOVANI  ABYCHOM SI TXREG NEPREPSALI
         GOTO   $-1               ;
         MOVLW   0xAA            ;odpoved
         MOVWF   TXREG
         CALL   TXTORX
      GOTO    START           ; bude sa cakat odznova povel alebo synchro



PRENOSK0
      CALL   RXTOTX
      MOVLW   B'11000001'      ; vyber vstupniho kanalu (0) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      CALL   TXTORX
      GOTO   START

PRENOSK1
      CALL   RXTOTX
      MOVLW   B'11001001'      ; vyber vstupniho kanalu (1) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      CALL   TXTORX
      GOTO   START


   


PRENOSK2
      CALL   RXTOTX
      BTFSC   PORTC,0         ;POKUD TEPLOTA KLADNA, TAK PREVOD S NORMALNIM VREF+. POKUD ZAPORNA TAK VREF+ -5V
      GOTO   MINUSHODNOTA   
      MOVLW   B'11010001'      ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      BCF      ZNAMENKO,0      ;TEPLOTA JE KLADNA
      CALL   VYSILEJZNAMENKO
      CALL   TXTORX
      GOTO   START
      
MINUSHODNOTA
      BSF      STATUS,RP0      ;BANKA1
      MOVLW   B'10000001'      ;NASTAVENI VREF+ RA3
      MOVWF   ADCON1
      BCF      STATUS,RP0
      MOVLW   B'11010001'      ; vyber vstupniho kanalu (2) , vyber zdroje CLOCK (INTRC), zapnuti AD
      MOVWF   ADCON0         ;...
      CALL   ADPREVOD      ;zavolej zahajeni AD prevodu
      CALL   VYSILEJL      ;zavolej vysilani LsB
      CALL   VYSILEJH      ;zavolej vysilani MsB
      BSF      ZNAMENKO,0      ;teplota je zaporna
      CALL   VYSILEJZNAMENKO   
      BSF      STATUS,RP0      ;BANKA1
      BCF      ADCON1,0      ;NASTAVENI VREF+ +5V
      BCF      STATUS,RP0      ;BANKA0
      CALL   TXTORX
      GOTO   START

PRENOSK3
PRENOSK4   

      GOTO   START


      
      END


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: út únor 01 2011, 1:17    Předmět: Citovat

pozri si toto
Je tam upravené čakanie na zapnutie vysielača druhej strany. To sa robí priamo cez portc7 resp. portb1 čítaním.
Nie je to bohvie čo, ale možno to pôjde, ak som v tom nerobil nejaké chyby.
Najmä u 627 je potrebné na príjem čakať iba do nejakej doby, aby sa to nezaťalo. Po pretečení času sa musí nanovo rozbehnúť nadviazanie spojenia...synchro.
877 môže trčať v prijímacej slučke stále. Iba pri zapínaní prenosu sa musí rozpoznať začiatok, prvý PaZnak vyhodiť-preskočiť...ten znak je tam zákonite ak sa príjem zapne skôr ako 627 zapne vysielač.
Ak by to nestačilo takto detekovať zapnutý vysielač, potom s HW by sa dal urobiť RC obvod a snímať ho na voľnom pine 627/877



PIC627a877a.txt
 Komentář:

Stáhnout
 Soubor:  PIC627a877a.txt
 Velikost:  26.06 kB
 Staženo:  99 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3  Další
Strana 2 z 3

 
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.50 sekund