📄 timer_send.s
字号:
.module Timer_Send.c
.area data(ram, con, rel)
_data_array01::
.blkb 2
.area idata
.byte 2,147
.area data(ram, con, rel)
.blkb 30
.area idata
.word 0,0,0,0,0
.word 0,0,0,0,0
.byte 0,0,0,0,0,0,0,0,0,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbsym e data_array01 _data_array01 A[32:32]c
_data_array02::
.blkb 2
.area idata
.byte 2,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 255,238
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 28
.area idata
.word 0,0,0,0,0
.word 0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbsym e data_array02 _data_array02 A[32:32]c
_data_array03::
.blkb 2
.area idata
.byte 3,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 1
.area idata
.byte 'f
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 29
.area idata
.word 0,0,0,0,0
.word 0,0,0,0,0
.byte 0,0,0,0,0,0,0,0,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbsym e data_array03 _data_array03 A[32:32]c
_data_array04::
.blkb 2
.area idata
.byte 4,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 1
.area idata
.byte 255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 29
.area idata
.word 0,0,0,0,0
.word 0,0,0,0,0
.byte 0,0,0,0,0,0,0,0,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbsym e data_array04 _data_array04 A[32:32]c
_data_array05::
.blkb 2
.area idata
.byte 5,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 255,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 238,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 238,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 238,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 238,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 2
.area idata
.byte 238,255
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 1
.area idata
.byte 238
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.blkb 17
.area idata
.word 0,0,0,0,0
.byte 0,0,0,0,0,0,0
.area data(ram, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbsym e data_array05 _data_array05 A[32:32]c
.area text(rom, con, rel)
.dbfile E:\Projects\AVR\Timer_Send\Timer_Send.c
.dbfunc e chipinit _chipinit fV
.even
_chipinit::
.dbline -1
.dbline 77
; //主机发I桢m-m,从机用透明模式
;
; //------------------------------------------------------------------
;
;
; #include "iom128v.h"
; #include "macros.h"
;
; //------------------------------------------------------------------
;
; #define XFIFO ((volatile unsigned char *)0)
; #define XBYTE ((volatile unsigned char *)0)
; #define MASK (*(volatile unsigned char *)0x2020)
; #define MASB (*(volatile unsigned char *)0x2060)
; #define ISTA (*(volatile unsigned char *)0x2020)
; #define ISTB (*(volatile unsigned char *)0x2060)
; #define CMDR (*(volatile unsigned char *)0x2021)
; #define STAR (*(volatile unsigned char *)0x2021)
; #define MODE (*(volatile unsigned char *)0x2022)
; #define TIMR (*(volatile unsigned char *)0x2023)
; #define XAD1 (*(volatile unsigned char *)0x2023)
; #define EXIR (*(volatile unsigned char *)0x2024)
; #define XAD2 (*(volatile unsigned char *)0x2025)
; #define RBCL (*(volatile unsigned char *)0x2025)
; #define RAH1 (*(volatile unsigned char *)0x2026)
; #define RAH2 (*(volatile unsigned char *)0x2027)
; #define RSTA (*(volatile unsigned char *)0x2027)
; #define RAL1 (*(volatile unsigned char *)0x2028)
; #define RAL2 (*(volatile unsigned char *)0x2029)
; #define RHCR (*(volatile unsigned char *)0x2029)
; #define XBCL (*(volatile unsigned char *)0x202a)
; #define BGR (*(volatile unsigned char *)0x202b)
; #define CCR2 (*(volatile unsigned char *)0x202c)
; #define XBCH (*(volatile unsigned char *)0x202d)
; #define RBCH (*(volatile unsigned char *)0x202d)
; #define RLCR (*(volatile unsigned char *)0x202e)
; #define VSTR (*(volatile unsigned char *)0x202e)
; #define CCR1 (*(volatile unsigned char *)0x202f)
; #define XFW (STAR&0x40)>>6 //发送FIFO可写
; #define CEC (STAR&0x04)>>2 //CEC=1,CMDR不可写;CEC=0,CMDR可写
; #define RME (ISTA&0x80)>>7 //信息接收结束
; #define RPF (ISTA&0x40)>>6 //32Bytes接受池满
; #define RSC (ISTA&0x20)>>5 //自动模式下对方的状态
; #define XPR (ISTA&0x10)>>4 //发送池正空
; #define TIN (ISTA&0x08)>>3 //定时器中断
; #define XMR (EXIR&0x80)>>7 //发送需要重复
; #define XDU (EXIR&0x40)>>6 //发送中途中止
; #define PCE (EXIR&0x20)>>5 //协议错误
; #define RFO (EXIR&0x10)>>4 //接收数据无法存入RFIFO造成溢出
; #define CSC (EXIR&0x08)>>3 //CTS状态改变
; #define RFS (EXIR&0x04)>>2 //接收到帧头
; //---------------------------------------------------------------------
; unsigned char flag_txd;
; unsigned char pre_txd[33];
; unsigned char count;
; extern unsigned char front,rear;
; //-----------------------------------------------------------------------------
;
; //Queue_2D Declaration Start===================================================
; void InitQueue();
; unsigned char QueueEmpty();
; unsigned char QueueFull();
; void EnQueue(unsigned char txd_data[32],unsigned char num_enQ); //入队
; void DeQueue(); //出队
; //Queue_2D Declaration End=====================================================
;
; //DATA Array for Test Start====================================================
; unsigned char data_array01[32]={0x02,0x93};
; unsigned char data_array02[32]={0x02,0x00,0xff,0xee};
; unsigned char data_array03[32]={0x03,0x00,0x66};
; unsigned char data_array04[32]={0x04,0x00,0xff};
; unsigned char data_array05[32]={0x05,0x00,0xff,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xee,0xff,0xee};
; //DATA Array for Test End======================================================
;
; //-----------------------------------------------------------------------------
; void chipinit(void)
; {
.dbline 78
; DDRB|=0xcf; //1100_1111
in R24,0x17
ori R24,207
out 0x17,R24
.dbline 79
; PORTB|=0xcf; //同上
in R24,0x18
ori R24,207
out 0x18,R24
.dbline 81
;
; DDRD=0xfc; //1111_1100 **
ldi R24,252
out 0x11,R24
.dbline 84
; //PORTD=0x3f;
;
; DDRE=0x07; //0000_0011
ldi R24,7
out 0x2,R24
.dbline 85
; PORTE=0xfc; //1111_1100
ldi R24,252
out 0x3,R24
.dbline 87
;
; DDRF=0x00; //0000_0000
clr R2
sts 97,R2
.dbline 88
; PORTF=0xff; //1111_1111
ldi R24,255
sts 98,R24
.dbline 90
;
; DDRG=0xff; //1111_1111
sts 100,R24
.dbline 91
; PORTG=0x1f; //0001_1111
ldi R24,31
sts 101,R24
.dbline 96
;
; //enable the interrupt
; //SREG|=0x80; //1000_0000
; //enable the external ram
; MCUCR=(1<<SRE);//使能外部RAM线路
ldi R24,128
out 0x35,R24
.dbline 98
;
; EICRA=0x00;
sts 106,R2
.dbline 99
; EIMSK=0x00;
out 0x39,R2
.dbline 102
; //EIMSK=0x01;
;
; return;
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e resethdlc _resethdlc fV
.even
_resethdlc::
.dbline -1
.dbline 106
; }
; //-------------------------------------------------------------
; void resethdlc(void)
; {
.dbline 107
; PORTD|=0x40; //0100_0000
sbi 0x12,6
.dbline -2
.dbline 109
; //PORTD&=0xbf;
; }
L2:
.dbline 0 ; func end
ret
.dbend
.dbfunc e cshdlc _cshdlc fV
.even
_cshdlc::
.dbline -1
.dbline 112
; //--------------------------------------------------------------
; void cshdlc(void)
; {
.dbline 113
; PORTD&=0x3f; //0011_1111
in R24,0x12
andi R24,63
out 0x12,R24
.dbline -2
.dbline 114
; }
L3:
.dbline 0 ; func end
ret
.dbend
.dbfunc e int_open _int_open fV
.even
_int_open::
.dbline -1
.dbline 118
;
; //-------------------------------------------------------------
; void int_open(void)
; {
.dbline 119
; _SEI();
sei
.dbline 120
; asm("nop");
nop
.dbline -2
.dbline 121
; }
L4:
.dbline 0 ; func end
ret
.dbend
.dbfunc e clk _clk fV
.even
_clk::
.dbline -1
.dbline 124
; //--------------------------------------------------------------
; void clk(void)
; {
.dbline 125
; PORTD&=0xdf; //1101_1111 片选8254
in R24,0x12
andi R24,223
out 0x12,R24
.dbline 128
;
; //送入计数方式
; XBYTE[0x3300]=0x36; //地址11_0000_0000 数据0011_0110
ldi R24,54
sts 13056,R24
.dbline 129
; XBYTE[0x3000]=0x02; //地址00_0000_0000 数据0000_0010
ldi R24,2
sts 12288,R24
.dbline 130
; XBYTE[0x3000]=0x00; //地址00_0000_0000 数据0000_0000
clr R2
sts 12288,R2
.dbline 132
;
; XBYTE[0x3300]=0x76; // 数据0111_0110
ldi R24,118
sts 13056,R24
.dbline 133
; XBYTE[0x3100]=0x02; //地址01_0000_0000 数据0000_0010
ldi R24,2
sts 12544,R24
.dbline 134
; XBYTE[0x3100]=0x00; //地址01_0000_0000 数据0000_0000
sts 12544,R2
.dbline 136
;
; XBYTE[0x3300]=0xB6; // 数据1011_0110
ldi R24,182
sts 13056,R24
.dbline 137
; XBYTE[0x3200]=0x02; //地址10_0000_0000 数据0000_0010
ldi R24,2
sts 12800,R24
.dbline 138
; XBYTE[0x3200]=0x00; //地址10_0000_0000 数据0000_0000
sts 12800,R2
.dbline 141
;
; //启动分频计数器
; PORTD|=0x1c; //0001_1100
in R24,0x12
ori R24,28
out 0x12,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -