亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mc68hc908rf2.txt

?? MC68HC908RF2帶曼徹斯特碼的發射程序,給要用RF2進行輪胎監測系統設計的朋友一點幫助
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
MC68HC908RF2帶曼徹斯特碼的發射程序
作者:  文章來源:   時間:2007-10-21 16:09:25   閱讀次數:836
--------------------------------------------------------------------------------
 

 
波特率:9600 


#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908RK2.h> /* include peripheral declarations */

/*****************************************************************************/
/* PROJECT : RF key demonstrator (ASK or FSK) */
/* constant file */
/*****************************************************************************/
/* Protocol */
#define nb_wake_up_bit 0 // not using the variable to delay for some time.
#define Preamble 0xFB86 // End of Tone + ID (B8) + Header (for using Romeo2 SPI)
#define Device_ID 0x7800 // length = 4 ; from $7800 to $7803


// NOTE: <IMPORTANT> Each of these 4 bytes must be programmed
// individually for each RK/RF2 upon programming the flash,
// and represent the tire identification.

#define wait_0_2ms 400 // for temperature sense
#define wait_0_5ms 1000 // for L22B pressure sense
#define wait_0_8ms 1600 // for long L90J pressure sense
#define wait_1ms 2000 // = 1 ms
#define wait_1_8ms 3810 // = 1.8 ms for Tango3
#define wait_2ms 4000 // = 2 ms for Remeo2

/* Transmission Timer Clock Generator */
/* This is the section that must be modified when the crystal is changed. */
/* You will also have to clear TSC[2:0] during transmission (see emis1.asm) */

/* ~9600 bauds using MCU clock for timer (not as accurate over temperature) */

// #define UHF_period 200 // =2MHz/10000bauds
// #define UHF_Duty_Cycle 100 // =0.5*UHF_period

/* use of DATACLK at 9600 bauds, 434 MHz*/

#define UHF_Period 22 // = 212kHz/9600 bauds
#define UHF_Duty_Cycle 11 // = 50%

/* use of DATACLK at 4800 bauds, 434 MHz*/
//#define UHF_period 44 // = 212kHz/4800 bauds
//#define UHF_Duty_Cycle 22 // = 50%

/* use of DATACLK at 9600 bauds, 315 MHz*/

// #define UHF_period 16 // = 154kHz/9600 bauds
// #define UHF_Duty_Cycle 8 // = 50%

/* use of DATACLK at 1200 bauds, 434 MHz:*/

// #define UHF_period_park 176 // = 212kHz/1200 bauds
// #define UHF_Duty_Cycle_park 88 // = 50%

/* use of DATACLK at 1200 bauds, 315 MHz:*/

// #define UHF_period_park 128 // = 154kHz/1200 bauds
// #define UHF_Duty_Cycle_park 64 // = 50%


//** hardef.h
//** Tango 3 I/O assignments

//#define tango_Band PTB_PTB0
#define tango_Band PTA_PTA7 
#define tango_Enable PTB_PTB1
#define tango_DATA_RF PTB_PTB2
#define tango_UP_CLOCK PTB_PTB3 
//#define tango_Mode PTA_PTA7 // PA7 **Important: porta!!! NOT portb!!!
#define tango_Mode PTB_PTB0 

//* Mode Control pins *
//#define S1 PTA_PTA1
//#define S0 PTA_PTA2
#define S1 PTA_PTA2
#define S0 PTA_PTA3 
//* Digital Data Output Pin *
//#define DOUT_BAR PTA_PTA3
//#define DOUTb PTA_PTA3 
#define DOUT_BAR PTA_PTA1
#define DOUTb PTA_PTA1
//* Data Clock Pin *
#define DCLK PTA_PTA4 
//* Serial Data In Pin *
#define SDATA PTA_PTA5
#define DDATA PTA_PTA5


#define LOWV 0x20
#define LVIOUT 0x80
#define nb_tx_byte 10

/*****************************************************************************/
/* PROJECT : RF key demonstrator (ASK or FSK) */
/* Variable file */
/* Modified by Jeff Burgess */
/* - added work-around for bug in Romeo2 receiver, where its SPI corrupts */
/* the last bit of data in the frame. Simply transmit one more useless */
/* byte, that will be corrupted instead of the useful data. */
/*****************************************************************************/

//*** define tyre's ID @ 0x7800
//const uchar ID[]@Device_ID = {0x55,0x10,0x77,0x77}; 
const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x01}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x02}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x03}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x04}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x05}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x06}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x07}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x08}; 
//const uchar ID[]@Device_ID = {0x55,0x10,0x02,0x09}; 


 

// transmit variables
// Preamble (2 bytes) - Device ID (4 bytes) - daytona data (2 bytes) -
// Status (1 byte) - CRC (1 byte) - Junk (1 byte)


uchar Tx_Byte[nb_tx_byte]; 
uchar Current_Tx_Bit;
uchar Next_Tx_Bit;
uchar current_tx_byte;


/* hardware variables for Daytona */
// variables for Daytona Serial and SAR routines

uchar T2; // temporary variables 
uchar T3; //
uchar T4; //
uchar T5; //
uchar SAR; //
uchar STATUS; //
uchar Tx_count; // Measure pressure every 3 sec, tx every 54 sec.
uchar Max_Pres; // Holds the maximum pressure
uchar Min_Pres; // Holds the minimum pressure
uchar AVGCOUNT; // Averaging counter (only used with noisy L22B silicon)
uchar TEMPERATURE; // converted temperature
uchar PRESSURE; // converted pressure 
uchar COUNTER; // counter to count every 3 or 6 secs
uchar Random_Number; // Pseudo-random number (from timer counter low register)


void init_ports(void);
void init_icg(void);
void init_timer(void);
void init_kbi(void);
void init_sys(void);

void tango_read_temperature_mode(void);
void tango_read_pressure_mode(void);
void tango_read_data_out(void);
void tango_idle(void);

void asleep_tx(void);

void Daytona_NoTx_Read(void);
void Daytona_Tx_Read(void); // Read temperature and pressure data.

void Check_battery(void);


void Fast_Data_Mode(void);
void Normal_Data_Mode(void); 
void Transmit_Prepare(void);
void Transmit_Frame(void); // Process and transmit the data.
void Transmit_Message(void); 

void Random_delay(void); // Add a random delay (~0 - 100 ms).
void tempo(uint ch);
void delay_200_ms(void);
void delay_800_ms(void); // Wait for about 0.8 seconds.
void make_frame(void);
uchar ad_converted(void);
void send_byte(uchar ch);
void toggle_clk(void);


/*********************************************************/
/* 函數:interrupt void Tx_UHF_ISR(void); */
/* 功能:中斷程序,將數據按曼徹斯特碼發射出去 */ 
/*********************************************************/
/* Tx_UHF_ISR */ 
/* Description : it decides what to do on timer overflow */ 
/* if current = next, then toggle on timer overflow,*/ 
/* else no toggle */
/* In : Next_Tx_bit, Current_Tx_Bit */ 
/* Out : TSC0, nb_1 */ 
/* local variables : */ 
/*********************************************************/
interrupt void Tx_UHF_ISR(void){

asm LDA TSC0 // reenable next input capture isr by reading tsc0
TSC0_CH0F = 0; // clearing input capture flag


if(!(Next_Tx_Bit==Current_Tx_Bit)){
TSC0_TOV0 = 0; //No Tovf
} 

else{
TSC0_TOV0 = 1; // Tovf
}
}


/*********************************************************/
/* 函數:__interrupt void Cpu_Interrupt(void) */
/* 功能:中斷程序,執行空操作 */ 
/*********************************************************/
interrupt void KB_entry(void){ 

tango_Enable = 1; // replace the contents in <emis1.asm>

INTKBSCR_IMASKK = 1; // Disable keyboard Interrupts.
Daytona_NoTx_Read(); // Read pressure data (not include temperature)
Tx_count++;
if(Tx_count==1){
Transmit_Prepare();
}

init_kbi();
init_ports();
tango_idle();
asm stop
} 


/*********************************************************/
/* 函數:void main(void); */
/*********************************************************/
void main(void) {
DisableInterrupts; /* disable interrupts */
/* include your code here */

//CONFIG = 0x32; // LVISTOP disabled!!!
// CONFIG[0]=COPD=0:ENABLE WATCHDOG!
// timeout period = 2**18-2**4 CGMXCLK cycles

CONFIG = 0x33; // WATCHDOG disabled!!!


init_sys(); // Initialize Module, clear counters/variables.
tango_idle(); // Place Daytona in IDLE mode and

// asm stop // wait here for falling edge at DOUT.
// when using sensor.

//*** for test program
for(;;) {
PTA_PTA6 = ~PTA_PTA6; //FOR TEST ok!
Transmit_Frame();
} // loop forever /
//please make sure that you never leave this function /

}

 

/**************************************************************/
/* LVI status check routine */
/* V0.1 17 July, 2002 Jeff Burgess */
/* Called with: jsr SEND_BYTE */
/* Returns: STATUS[7,6] containing the data */
/* from LVISR[7,5] respectively. */
/* (c) 2002 Motorola */
/**************************************************************/
void Check_battery(void){ 
asm LDA LVISR
T3 = LVISR;
if(0!=(T3&LOWV)){ //LOWV is bit 5 0010-0000
//STATUS.S_LOWV = 1; 
}

if(0!=(T3&LVIOUT)){
//STATUS.S_LVIOUT = 1; //LVIOUT is bit 7 1000-0000 
} 
}


/**************************************************************/
/* 函數:void Daytona_NoTx_Read(void); */
/* 功能:沒到發射時間只采樣壓力值 */ 
/* 須更新最大最小壓力值:Max_Pres 和 Min_Pres */ 
/**************************************************************/
void Daytona_NoTx_Read(void){ 

tango_read_pressure_mode(); //Sample pressure
tempo(wait_0_5ms); 
tango_read_data_out();
PRESSURE = ad_converted();
tango_idle();

if(PRESSURE>Max_Pres){
Max_Pres = PRESSURE;
} 

else if(PRESSURE<Min_Pres){
Min_Pres = PRESSURE;
} 

else {
}

}

/**************************************************************/
/* 函數:void Daytona_Tx_Read(void); */
/* 功能:已到發射時間,采樣壓力和溫度值 */ 
/**************************************************************/
void Daytona_Tx_Read(void){

tango_read_temperature_mode();
tempo(wait_0_2ms);
tango_read_data_out();
TEMPERATURE = ad_converted();

tango_read_pressure_mode();
tempo(wait_0_5ms);
PRESSURE = ad_converted();
tango_idle();

}

/**************************************************************/
/* 函數:uchar ad_converted(void); */
/* 功能:A/D轉換程序,用以采集MPXY8020傳感器的溫度、壓力數據 */ 
/**************************************************************/
uchar ad_converted(void){
uchar i;
uchar data=0;
uchar ad_data;
uchar data_buff;

SAR = 0;

T2 = 0x80; 

for(i=1;i<8;i++){

data_buff = T2|SAR; 
send_byte(data_buff);
if(1==DOUT_BAR) { //TOO LOW
SAR |=T2;
} 
else{
T2 = T2>>1; 
} 
} 

ad_data = SAR;
return ad_data; 
}

void send_byte(uchar ch){
uchar data;
uchar mask = 0x80;
uchar i; //bit count
data = ch;
DCLK = 0;
for(i=8;i>0;i--){
if(1==data&mask){
SDATA = 1;
toggle_clk();
} 

else{
SDATA = 0;
toggle_clk();
}
} 
}


void toggle_clk(void){
DCLK = 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久99| 久久夜色精品国产噜噜av| 国产精品第一页第二页第三页| 高清在线不卡av| 久久精品72免费观看| 国产人伦精品一区二区| 精品久久久久久无| 久久一区二区视频| 久久精品亚洲麻豆av一区二区| 成人动漫中文字幕| 国产成人午夜片在线观看高清观看| 国产精品嫩草久久久久| 国产精品进线69影院| 亚洲欧美成人一区二区三区| 日韩理论片中文av| 亚洲一区二区视频在线| 日韩福利电影在线观看| 捆绑调教一区二区三区| 综合久久国产九一剧情麻豆| 欧美一二三在线| 97久久超碰国产精品| 裸体健美xxxx欧美裸体表演| 中文字幕在线不卡国产视频| 亚洲精品国产成人久久av盗摄| 欧美r级在线观看| 国产色婷婷亚洲99精品小说| 中文字幕永久在线不卡| 久久久久久毛片| 亚洲精品国产成人久久av盗摄 | va亚洲va日韩不卡在线观看| 99精品久久只有精品| 欧美精品免费视频| 久久久精品国产免费观看同学| 欧美日韩三级一区| 26uuu另类欧美| 亚洲欧美成aⅴ人在线观看| 青青草伊人久久| 99视频在线精品| 欧美大度的电影原声| 日韩毛片在线免费观看| 久久精工是国产品牌吗| 日韩精品免费专区| 成人一区二区三区中文字幕| 欧日韩精品视频| 在线看一区二区| 久久久久国产精品麻豆| 亚洲国产你懂的| 成人高清视频免费观看| 日韩欧美不卡在线观看视频| 亚洲日本护士毛茸茸| 高清不卡一二三区| 日韩欧美国产麻豆| 一个色综合av| 成人综合日日夜夜| 精品国产一区二区亚洲人成毛片| 欧美日韩中文字幕精品| 欧美激情一区在线| 国产毛片精品国产一区二区三区| 精品一区二区三区在线观看国产| 欧美aaa在线| 欧美综合天天夜夜久久| 中文字幕一区日韩精品欧美| 亚洲欧洲精品天堂一级| 国产做a爰片久久毛片| 欧美一区二区三区影视| 性感美女极品91精品| 色婷婷久久久综合中文字幕| 欧美日韩国产片| 亚洲黄一区二区三区| 视频一区欧美精品| 欧美日韩一二区| 亚洲chinese男男1069| 日韩av一区二区三区| 欧美日韩你懂得| 亚洲国产精品影院| 欧美性xxxxxxxx| 亚洲成人av电影| 欧美精品黑人性xxxx| 一区二区三区免费看视频| 日本欧美在线观看| 丁香啪啪综合成人亚洲小说 | 中文字幕一区二区三区在线观看 | 欧美日韩精品是欧美日韩精品| 91精品国产色综合久久| 婷婷激情综合网| 91精品国产一区二区三区蜜臀 | 成人av网址在线观看| 中文一区在线播放| 成人午夜激情在线| 欧美丝袜第三区| 日日摸夜夜添夜夜添精品视频| 韩国av一区二区| 国产日韩欧美不卡| va亚洲va日韩不卡在线观看| 一区二区在线看| 欧美精品久久天天躁| 亚洲国产成人私人影院tom| 成人av电影在线播放| 一区二区三区四区视频精品免费| 免费在线欧美视频| 久久一区二区三区四区| 日韩国产精品久久久久久亚洲| 成人高清在线视频| 久久综合成人精品亚洲另类欧美| 亚洲一区在线看| 久久美女高清视频| 91视视频在线观看入口直接观看www | 蜜臀99久久精品久久久久久软件| 91视频一区二区| 日韩精品三区四区| 中文天堂在线一区| 欧美另类久久久品| 国产乱码精品一区二区三区忘忧草 | 久久先锋影音av鲁色资源网| 国产成人精品免费网站| 亚洲成人午夜影院| 国产精品久线在线观看| 91精品在线观看入口| www.欧美精品一二区| 另类调教123区| 亚洲自拍偷拍九九九| 国产婷婷一区二区| 91精品国产入口| 麻豆精品一二三| 日韩欧美亚洲另类制服综合在线| 一个色综合av| 中文字幕乱码日本亚洲一区二区 | 亚洲日本护士毛茸茸| 欧美成人免费网站| 欧美三级日本三级少妇99| 国产成人激情av| 国产一区二区三区精品视频| 亚洲电影你懂得| 亚洲日本免费电影| 国产精品久久久久久久久免费桃花 | 久久成人免费日本黄色| 亚洲欧美日韩一区| 欧美激情艳妇裸体舞| 成人久久18免费网站麻豆| 免费看欧美美女黄的网站| 亚洲一区二区在线播放相泽| 成人欧美一区二区三区视频网页| 色综合久久综合中文综合网| 国产在线国偷精品免费看| 日韩亚洲欧美一区| 欧美丰满高潮xxxx喷水动漫| 4hu四虎永久在线影院成人| 国产成人av资源| 韩国精品主播一区二区在线观看 | 日韩视频免费直播| 午夜精品一区在线观看| 亚洲欧美日韩一区| 性久久久久久久久| 日本 国产 欧美色综合| 亚洲日本韩国一区| 3d成人h动漫网站入口| 欧美日韩国产欧美日美国产精品| 欧美一区二区三区公司| 成人午夜私人影院| 丝袜诱惑制服诱惑色一区在线观看| 国产精品久久久久久久久动漫| 亚洲欧美乱综合| 久久综合精品国产一区二区三区| 国产欧美精品国产国产专区| 在线精品视频免费播放| 国产麻豆9l精品三级站| 日韩精品电影一区亚洲| 亚洲一区二区三区三| 国产精品久久看| 亚洲色图19p| 亚洲欧洲韩国日本视频| 中文字幕免费不卡| 国产亚洲成年网址在线观看| 亚洲一区二区三区中文字幕| 亚洲精品一区二区三区影院| 欧美另类z0zxhd电影| 日本电影欧美片| 亚洲品质自拍视频| 欧美怡红院视频| 日韩欧美美女一区二区三区| 国产亚洲综合在线| 国产一区二区在线视频| 高清国产午夜精品久久久久久| 日韩欧美亚洲国产另类| 日韩你懂的在线观看| 亚洲欧美精品午睡沙发| 亚洲久本草在线中文字幕| 亚洲午夜免费福利视频| 久久综合给合久久狠狠狠97色69| 亚洲日本青草视频在线怡红院| 欧美a一区二区| 亚洲青青青在线视频| 欧美国产欧美综合| 亚洲丶国产丶欧美一区二区三区| 久久欧美一区二区| 欧美亚州韩日在线看免费版国语版| 成人av在线资源| 日韩美女视频一区二区在线观看| 欧美电影影音先锋| 亚洲欧洲日韩综合一区二区|