📄 main.c
字号:
//ICC-AVR application builder : 2008-5-18 17:17:14
// Target : M8
// Crystal: 8.0000Mhz
#include <iom8v.h>
#include <macros.h>
#include "define.h"
#include "D12API.h"
#include "M8API.h"
void port_init(void)
{
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0xFF;
}
//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x02;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x67; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x18;
}
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
//external interupt on INT0
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();//初始化I/O口
uart0_init();//初始化串行口
//注:串行口是用来外扩LCD和键盘,用于查询显示当前的工作状态
MCUCR = 0x00;
GICR = 0x40;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
/****/
//API
/****/
/***************** 延时x毫秒函数 ***********/
void delay(unsigned int x)
{
unsigned int i;
unsigned int j;
for(i=0;i<x;i++)
for(j=0;j<230;j++);
}
/********************************************/
void main(void)
{
init_devices();
Prints("系统启动................................",1);
delay(1000); //延迟
disconnect_usb(); //断开USB连接
init_usb(); //初始化USB芯片
connect_usb(); //连接USB
KeyMapCanChange=1;
while(1)
{
if(!USB_INT) //中断产生
{
read_interrupt_register();
if(Interrupt_Register.Interrupt.bus_reset){usb_bus_reset();continue;}
if(Interrupt_Register.Interrupt.suspend_change){usb_bus_suspend();continue;}
if(Interrupt_Register.Interrupt.control_out_port){endp0_out();continue;}
if(Interrupt_Register.Interrupt.control_in_port&&usb_flags.flags.usb_endp0_in){endp0_in();continue;}
// if(Interrupt_Register.Interrupt.port_out_1)endp1_out();
// if(Interrupt_Register.Interrupt.port_in_1)endp1_in();
if(Interrupt_Register.Interrupt.main_out_port){endp2_out();}
if(Interrupt_Register.Interrupt.main_in_port){endp2_in();}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -