?? test_funcs._c
字號(hào):
#include "includes.h"
//*****************************************************************************
// TickISR
//*****************************************************************************
// Init Timer/Counter2 fuer Takterzeugung
void TC2_Init (void){
TCCR0 = 0x05; /* Set TIMER0 prescaler to CLK/1024 */
TIMSK = 0x02; /* Enable TIMER0 overflow interrupt */
UBRR=25;//192,00
UCR=0x18;//RXEN TXEN
}
void task_Delay(void)
{
unsigned char i,j,k;
for(i=1;i<4;i++)
// for(j=1;j;j++)
{
OSTimeDly(30);
for(k=1;k;k++)
;
}
}
#if PROGRAM_START_FLASH_EN
void Delay(void)
{
unsigned char i,j,k;
for(i=1;i<10;i++)
for(j=1;j;j++)
{
for(k=1;k;k++)
;
}
}
void ProgramStart_Flash(INT8U v)
{
DDRB=0xff;
PORTB=v;
DDRD=0xff;
PORTD=v;
// DDRA=0xff; PORTA=v;
// DDRC=0xff;
// PORTC=v;
Delay();
}
void ProgramStart(void)
{
DDRA=0xff; PORTA=0xff;
DDRC=0xff; PORTC=0xff;
ProgramStart_Flash(0);
ProgramStart_Flash(0xff);
ProgramStart_Flash(0);
ProgramStart_Flash(0xff);
ProgramStart_Flash(0);
ProgramStart_Flash(0xff);
}
#endif//PROGRAM_START_FLASH_EN
#if OS_STRICT
void OSError(INT8U err)
{
INT8U i=err;
while(1)
i=err;
}
#endif
#if OS_SEM_EN
void my_putc(INT8U c)
{
#if LCD_EN
lcd_putc(c);
#endif
putchar(c);
}
#endif
/* PORTC , send 'T1'*/
void task1(void *pdata)
{
INT8U i=0,err;
while(1)
{
i++;
#if DEBUG_IN_AVR_STUDIO==0
task_Delay();
#endif
OSTimeDly(11);
#if OS_SEM_EN
err=OS_NO_ERR;
if(i>8)
{
i=0;
#if LCD_EN
//clear lcd
OSSemPend(&uart_sem,32700,&err);
if(OS_NO_ERR==err)
{
lcd_clear();
OSSemPost(&uart_sem);
}
#endif//LCD_EN
}//end of clear lcd
if((i>=0)&&(i<=9))
{
OSSemPend(&uart_sem,32700,&err);
if(OS_NO_ERR==err)
{
#if DEBUG_IN_AVR_STUDIO==0
my_putc('T');my_putc((INT8U)(i+'0'));
//read answer
getchar();//should be 'R'
DDRC=0xff;
PORTC=getchar()-'0';//should between '0' and '9'
#endif
OSSemPost(&uart_sem);
}
}//end i>=0 and i<=9
#endif
}//while(1)
}
/* PORTA , send 'Q1'*/
void task2(void *pdata)
{
INT8U i=0,j,k,err;
while(1)
{
i++;
#if DEBUG_IN_AVR_STUDIO==0
task_Delay();
#endif
OSTimeDly(3);
#if OS_SEM_EN
err=OS_NO_ERR;
if(i>9)
{//clear lcd and reset i
i=1;
OSSemPend(&uart_sem,32700,&err);
if(OS_NO_ERR==err)
{
lcd_clear();
OSSemPost(&uart_sem);
}
}//end i>9
if((i>=0)&&(i<=9))
{
OSSemPend(&uart_sem,32700,&err);
if(OS_NO_ERR==err)
{
#if DEBUG_IN_AVR_STUDIO==0
my_putc('Q'); my_putc((INT8U)(i+'0'));
//read answer
getchar();//should be 'A'
DDRA=0xff;
PORTA=getchar()-'0';//should be '0' to '9'
#endif
OSSemPost(&uart_sem);
}//end of send
}//end i>=0 and i<=9
#endif
}//end while(1)
}
void task3(void *pdata)
{
while(1)
{
asm("nop");
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -