📄 main.c
字号:
//===================================================================//
// Augest, 25, 2002 The Last Modified Date
//===================================================================//
#include "AvrUsb.H"
//extern unsigned char GenBuf[GENBUF_LENGH];
///////////////////////////////////
// Data definition
AVRUSBFLAGS bAvrUsbFlags;
extern CONTROL_XFER ControlData;
extern unsigned char buf[16];
void port_init(void)
{
PORTA = 0xFF;
DDRA = 0xFF;
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0xFF;
DDRC = 0xFF;
PORTD = 0xFF;
DDRD = 0xF0;
}
//TIMER0 initialisation - prescale:1024
// desired value: 50Hz
// actual value: 50.080Hz (0.2%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop timer
TCNT0 = 0x00; //set count value
TCCR0 = 0x05; //start timer
}
//call this routine to initialise all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();
MCUCR = 0x80;//02;
GIMSK = 0x40;
TIMSK = 0x02;
//SEI(); //re-enable interrupts
//all peripherals are now initialised
}
/*------------------------------------------------
The main C function. Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void)
{
init_devices();
bAvrUsbFlags.bits.bLED = LED_FLASH;
USB_Reconnect();
USBD12_SetEndpointEnable(1);
ENABLE_INTERRUPTS;
/* Main program loop */
while(TRUE)
{
if (bAvrUsbFlags.bits.bBus_Reset)
{
DISABLE_INTERRUPTS;
bAvrUsbFlags.bits.bBus_Reset = 0;
ENABLE_INTERRUPTS;
PORTB|= 0x80; //D12SUSPD = 1;
} // if bus reset
if (bAvrUsbFlags.bits.bSuspend)
{
DISABLE_INTERRUPTS;
bAvrUsbFlags.bits.bSuspend= 0;
ENABLE_INTERRUPTS;
} // if suspend change
if (bAvrUsbFlags.bits.bSetup_Packet)
{
DISABLE_INTERRUPTS;
bAvrUsbFlags.bits.bSetup_Packet = 0;
ENABLE_INTERRUPTS;
USB_Control_Handler();
PORTB|= 0x80;
} // if setup_packet
if(bAvrUsbFlags.bits.bRead)
{
DISABLE_INTERRUPTS;
bAvrUsbFlags.bits.bRead = 0;
USBD12_WriteEndpoint(3,buf,2);
USBD12_WriteEndpoint(5,buf,2);
USBD12_WriteEndpoint(3,buf,0);
USBD12_WriteEndpoint(5,buf,0);
ENABLE_INTERRUPTS;
}
} // Main Loop
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -