📄 cymometer.h
字号:
/* ASCII */
#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define BEL 0x07
#define NAK 0x15
#define ETB 0x17
//#define eeprom_write_word my_eeprom_write_word
//#define eeprom_read_word my_eeprom_read_word
#define LED_ON PORTB&=0xfd //PROTB bit0=0
#define LED_OFF PORTB|=2 //PROTB bit0=1
#define CPU_CLOCK_HZ 12800000 /* 12.8Mhz */
#define UART_BAUD_RATE 115200 /* 115200 baud */
#define EEPROM_SIZE (E2END+1)
#define UART_BAUD_SELECT (CPU_CLOCK_HZ/(UART_BAUD_RATE*16l)-1)
//#define memory_DATA *(volatile u08 *)0x0000
#define SPI_DATA SPDR
/*typedef unsigned char u08;
typedef char s08;
typedef unsigned short u16;
typedef short s16;*/
static volatile u16 Count1,Count2,Count3,Count4,Cont3_end;
static volatile u08 Count_start_F,Count_end_F;
//static volatile u08 m_rev_errnum
//static volatile u08 m_rev_status;
//static volatile u08 m_sync_num;
static volatile u32 m_sync_errnum;
//static volatile u32 m_sync_allnum;
//static volatile u08 m_sequence_move;
//static volatile u32 m__errnum;
static volatile u32 T__allnum;
static volatile u08 Two_Second,T_5ms_num,Display_on;
//static volatile u08 LCD_addr;
/**/
typedef struct line_LCD{ //LCD存储格式
u08 line0[20]; //line0
u08 line2[20]; //line2
u08 line1[20]; //line1
u08 line3[20]; //line2
}line_LCD;
/**/
typedef union lcd_p{ //LCD缓冲区格式变换
struct line_LCD L_line;
u08 LCD_buffer[80];
}lcd_p;
union lcd_p buffer_LCD ;
char RomTab[] __attribute__ ((progmem)) ="yfzhang@ele.pku.edu.cn";
static char EEPRomTab[] __attribute__ ((section(".eeprom"))) =" yfzhang@ele.pku.edu.cn";
static u08 LCD_init[] __attribute__ ((progmem)) =" 05\00103\00227\003 Cymometer f=000.000000(MHz) ";
static u08 time_addr[] __attribute__ ((progmem)) ={1,2,4,5,7,8,11,12,14,15,17,18};
static u08 LCD_cgtab[32] __attribute__ ((progmem)) ={8,15,20,31,20,31,4,4,15,9,15,9,15,9,17,0,15,9,9,15,9,9,15,0,0,16,8,4,2,1,0,0}; //年月日 \ =01 02 03 04
static volatile u08 T_125ms_num; /* Number of 125ms timer1 */
static volatile u08 T_Second_num; /* Number of 1s timer1 */
//LCD
u08 pc_LCDstatus;
u08 pc_LCDsetup_start;
u08 pc_LCDaddress;
u08 pc_update;
u08 LCD_timer[12];
u08 LCD_work_is_busy;
// local data buffer
//unsigned char localBuffer[] = "Pascal is cool!!Pascal is Cool!!";
//unsigned char localBufferLength = 0x20;
void ascii_to_hex(u08 *p,u08 num);
void hex_to_ascii(u08 *p,u08 num);
void Delay_t(u16 t);
void initLCD(void);
u08 LCD_CR_ADD(void);
void LCD_CW_ADD(u08 cw);
void LCD_CW_ADD(u08 cw);
u08 chackLCDbusy(void);
void writeLCD_cgtab(void);
u08 setLCD_pos(u08 xpos,u08 ypos);
u08 setLCD_posadd(u08 posadd);
u08 writeLCD_data(u08 d);
void PutString_LCD(u08 xpos,u08 ypos,u08 *s);
void PutString_LCD_P(u08 point,u08 *s);
void communicate_with_LCD(void);
void display_frequency(u08 xpos,u08 ypos,double m);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -