DIY:給單片機(jī)寫個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核!
//線程2讓PC口閃爍
void Test2(void *p)
{
uint8_t i;
DDRC=0xff;
PORTC=0XFF;
SREG|=0X80 ;
while(1)
{
for(i=0;i<8;i++)PORTC=1<
}
}
//線程3讓PD口閃爍
void Test3(void *p)
{
uint8_t i;
DDRD=0XFF;
PORTD=0xff;
SREG|=0X80;
while(1)
{
for(i=0;i<8;i++)PORTD=1<
}
}
//MAIN函數(shù)
int main(void)
{
uint8_t i = 0x77;
//初始化操作系統(tǒng)
OS_Init();
//初始化線程控制塊并創(chuàng)建任務(wù)
OS_ThreadInit(&Task1,Test1Stack,STACK_SIZE,5,0);
OS_ThreadCreate(&Task1,Test1,&i);
OS_ThreadInit(&Task3,Test3Stack,STACK_SIZE,5,0);
OS_ThreadCreate(&Task3,Test3,&i);
OS_ThreadInit(&Task2,Test2Stack,STACK_SIZE,5,0);
OS_ThreadCreate(&Task2,Test2,&i);
//初始化定時(shí)器
OS_TimerInit();
//啟動(dòng)內(nèi)核
OS_KernelStart();
//正常的話程序永遠(yuǎn)不會(huì)執(zhí)行到這里?。。?/div>
while(1);
}
OK,開始調(diào)試咯!打開PROTEUS連線,LOAD程序,然后運(yùn)行。。。。
本文引用地址:http://m.butianyuan.cn/article/201611/323486.htm成功同時(shí)運(yùn)行三個(gè)流水燈程序!太棒了!接下來在這個(gè)內(nèi)核的支持下你就可以創(chuàng)作你的應(yīng)用程序了,使用內(nèi)核提供的線程創(chuàng)建函數(shù)你可以創(chuàng)建N多個(gè)線程,當(dāng)然了,必須在內(nèi)存可接受的范圍內(nèi)。利用內(nèi)存分配函數(shù)你可以動(dòng)態(tài)申請(qǐng)和釋放內(nèi)存了。再也不用為DELAY()這種浪費(fèi)CPU效率的作法郁悶很久了。
上面所說的所有代碼都開源,想看的同學(xué)發(fā)郵件到我EMAIL: wfm2012@126.com 索要
下次有空再作一些應(yīng)用范例來玩玩
關(guān)鍵詞:
DIY單片機(jī)實(shí)時(shí)操作系統(tǒng)內(nèi)
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論