📄 adsbin.c
字号:
/*********************************************************************
* FileName: adsbin.c
* Dependencies: See INCLUDES section below
* Processor: PIC18
* Compiler: C18 2.30.01+
* Company: sprut
* Copyright: 2007-2010 Joerg Bredendiek (sprut)
*
*
********************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/** I N C L U D E S **********************************************************/
#include <p18cxxx.h>
#include <usart.h>
#include "system\typedefs.h"
#include "system\usb\usb.h"
#include "io_cfg.h" // I/O pin mapping
#include "delays.h"
//#include "system\interrupt\interrupt.h"
#include "user\user.h"
#include "user\adsbin.h"
/** V A R I A B L E S ********************************************************/
#pragma udata
/** D E C L A R A T I O N S **************************************************/
#pragma code
// 0x2E ... 0x34 ...0x39 ... 0x3B
// AAA0 ... AAA6 ...AAA11 ... AAA13
char adsb_in(void)
{
_asm
BRA M04252
// Fehler im Datenblock
M0423E:
BSF INTCON, GIEH, A
M0424E:
BRA M04254 // Return falls 0x16=0
// Einstieg: gerufen von 03F46
// Fehler im Header
M04252:
BSF INTCON, GIEH, A
M04254:
BCF PORTC, 1, A // HDR_OUT
//BTFSC 0x16, 0, 1 // wird gesetzt wenn usart was empfaengt
DECFSZ adsbLoopL, F, A // 255 erfolglose Leseversuche, danach zurueck
BRA M0425C
DECFSZ adsbLoopH, F, A
BRA M04254
RETURN 1 // true, Fehler, nichts empfangen
// Einlesen : ist das ein Header ?
M0425C:
BCF INTCON, GIEH, A
BTFSC PORTC, 0, A
BTFSS PORTC, 0, A
M04262:
BRA M04252
M04264:
MOVF TMR1L, W, A
MOVWF Zeit, 1 //MOVWF 0x18, 1
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M0426E:
BRA M04252
M04270:
NOP
NOP
NOP
BTFSC PORTC, 0, A
BTFSS PORTC, 0, A
M0427A:
BRA M04252
M0427C:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M04286:
BRA M04252
M04288:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M04292:
BRA M04252
M04294:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M0429E:
BRA M04252
M042A0:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042AA:
BRA M04252
M042AC:
NOP
NOP
NOP
BTFSC PORTC, 0, A
BTFSS PORTC, 0, A
M042B6:
BRA M04252
M042B8:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042C2:
BRA M04252
M042C4:
NOP
NOP
NOP
BTFSC PORTC, 0, A
BTFSS PORTC, 0, A
M042CE:
BRA M04252
M042D0:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042DA:
BRA M04252
M042DC:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042E6:
BRA M04252
M042E8:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042F2:
BRA M04252
M042F4:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M042FE:
BRA M04252
M04300:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M0430A:
BRA M04252
M0430C:
NOP
NOP
NOP
BTFSS PORTC, 0, A
BTFSC PORTC, 0, A
M04316:
BRA M04252
// es folgt der Datenblock
// 5 Bit Format-Number
// DF00 00000 56 bit
// DF04 00100 56 bit
// DF05 00101 56 bit
// DF11 01011 56 bit
// DF16 10000 112 bit
// DF17 10001 112 bit
// DF19 10011 112 bit
// DF20 10100 112 bit
// DF21 10101 112 bit
// DF22 10110 112 bit
// DF24 11000 112 bit
//
// das erste Bit unterscheidet zwischen 56 und 112 bit
M04318:
NOP
BCF PORTC, 2, A
BSF PORTC, 1, A
RRCF PORTC, W, A
RLCF AAA0, F, 1
CLRF Lang, 1 // 56 oder 112 bit noch unbekannt //CLRF 0x14, 1
BTFSC AAA0, 0, 1 // Test 56 oder 112 Bit ?
INCF Lang, F, 1 // 112 Bit : 0x14=1 //INCF 0x14, F, 1
M04328:
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BZ M0423E // Fehler im Datenblock
NOP
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M0434C
BRA M0423E
M0434C:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M04364
BRA M0423E
M04364:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M0437C
BRA M0423E
M0437C:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M04394
BRA M0423E
M04394:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M043AC
BRA M0423E
M043AC:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M043C4
BRA M0423E
M043C4:
NOP
RRCF PORTC, W, A
RLCF AAA0, F, 1
NOP
NOP
NOP
BSF ADCON0, 1, A
MOVF PORTC, W, A
XORWF AAA0, W, 1
ANDLW 0x01
BNZ M043DC
BRA M0423E
M043DC:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M043F4
BRA M0423E
M043F4:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M0440C
BRA M0423E
M0440C:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M04424
BRA M0423E
M04424:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M0443C
BRA M0423E
M0443C:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M04454
BRA M0423E
M04454:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M0446C
BRA M0423E
M0446C:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M04484
BRA M0423E
M04484:
NOP
RRCF PORTC, W, A
RLCF AAA1, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA1, W, 1
ANDLW 0x01
BNZ M0449C
BRA M0423E
M0449C:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M044B4
BRA M0423E
M044B4:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M044CC
BRA M0423E
M044CC:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M044E4
BRA M0423E
M044E4:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M044FC
BRA M0423E
M044FC:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M04514
BRA M0423E
M04514:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M0452C
BRA M0423E
M0452C:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M04544
BRA M0423E
M04544:
NOP
RRCF PORTC, W, A
RLCF AAA2, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA2, W, 1
ANDLW 0x01
BNZ M0455C
BRA M0423E
M0455C:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M04574
BRA M0423E
M04574:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M0458C
BRA M0423E
M0458C:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M045A4
BRA M0423E
M045A4:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M045BC
BRA M0423E
M045BC:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M045D4
BRA M0423E
M045D4:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M045EC
BRA M0423E
M045EC:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M04604
BRA M0423E
M04604:
NOP
RRCF PORTC, W, A
RLCF AAA3, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA3, W, 1
ANDLW 0x01
BNZ M0461C
BRA M0423E
M0461C:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M04634
BRA M0423E
M04634:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M0464C
BRA M0423E
M0464C:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M04664
BRA M0423E
M04664:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M0467C
BRA M0423E
M0467C:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M04694
BRA M0423E
M04694:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M046AC
BRA M0423E
M046AC:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M046C4
BRA M0423E
M046C4:
NOP
RRCF PORTC, W, A
RLCF AAA4, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA4, W, 1
ANDLW 0x01
BNZ M046DC
BRA M0423E
M046DC:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M046F4
BRA M0423E
M046F4:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M0470C
BRA M0423E
M0470C:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M04724
BRA M0423E
M04724:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M0473C
BRA M0423E
M0473C:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M04754
BRA M0423E
M04754:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M0476C
BRA M0423E
M0476C:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M04784
BRA M0423E
M04784:
NOP
RRCF PORTC, W, A
RLCF AAA5, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA5, W, 1
ANDLW 0x01
BNZ M0479C
BRA M0423E
M0479C:
NOP
RRCF PORTC, W, A
RLCF AAA6, F, 1
NOP
NOP
NOP
NOP
MOVF PORTC, W, A
XORWF AAA6, W, 1
ANDLW 0x01
BNZ M047B4
BRA M0423E
M047B4:
NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -