今天在EINT的范例里添加了一個函數,即eint.c中添加了一個datawrite()的函數,並在主函數main.c中調用,編譯便警告
warning: #223-D: function "datawrite()" declared implicitly
很奇怪,在eint.c中也有初始化函數EINTInit()同樣在main.c中調用沒有問題,問什么偏偏這個不行。
但畢竟是個警告,還不是錯誤,做了個測試IO,
while(1)
{
FIO1SET = 1<<19;
delaySysTick(10);
Data_write(0xff00, 0xff);
FIO1CLR = 1<<19;
delaySysTick(10);
}
下載執行后發現,此IO根本沒有輸出。
看來這個警告還是不能回避的,在網上差了下,有類似問題說是庫的原因,具體是什么也沒說清楚。於是嘗試着一一打開庫文件,打開eint.h,恍然大悟,這里赫然寫着
extern void EINT0_IRQHandler(void) __irq;
extern DWORD EINTInit( void );
原來在這里將eint.c中的函數與main.c相關聯,也就是在eint.c中添加了新函數,還有在這里聲明調用才行。
eint.h中,添加
extern void Data_write(WORD addr, BYTE data);
即可