Em đã sửa lại chương trình theo hướng này rồi.
Nhưng em không biết tại sao có vẫn báo lỗi : "Previous identifier must be a pointer"
Code:
#include <16F877A.h>
#device *=16 ADC=8
#fuses NOWDT,HS,NOPROTECT
#use delay(clock=20000000)
#use fast_io(b)
#use fast_io(c)
//============Khai bao bien toan cuc====================//
int8 const led[]={1,2,4,8,16,32,64,128};
int i;
//=============khai bao ham====================//
void led();
void led1();
//============================================//
//==================ham chinh==================//
void main()
{
while(1)
{
set_tris_b(0);output_b(0x00);
set_tris_c(0);output_c(0x00);
led ();
led1 ();
}
}
//=============chuong trinh con=================//
//===========nhay 1 chieu tu B-C============//
void led()
{// int8 const led[]={1,2,4,8,16,32,64,128},a;
for(i=0;i<8;i++)
{
output_b(led[i]);
delay_ms(50);
}output_b(0);
for(i=0;i<8;i++)
{
output_c(led[i]);
delay_ms(50);
}output_c(0);
}
//=============nhay 1 chieu tu C-B===========//
void led1()
{// int8 const led[]={1,2,4,8,16,32,64,128},a;
for(i=8;i>=1;i--)
{
output_c(led[i-1]];
delay_ms(50);
}output_c(0);
for(i=8;i>=1;i--)
{
output_b(led[i-1]);
delay_ms(50);
}
}
Nếu khai báo biến cục bộ như chỗ in đậm thì không có lỗi. CÒn đưa ra biến toàn cục thì lỗi như vậy tại những chỗ in đậm (i, i-1) .Em lục hết mấy bài viết rồi thấy ai viết output_B(led[i ])cũng chạy cả mà sao em lại không chạy. Các bác giúp em với.