Trích:
Nguyên văn bởi kiemkhach10
tách ra như nào vậy?
đúng là mình đang viết 17 câu lệnh if else liền nhau, và nó cũng báo như trên?
bạn có thể chỉ rõ hơn cách tách ra để ko bị báo hết bộ nhớ như trên được ko?
cám ơn!
|
tách ra như sau:
#include <htc.h>//PIC16F57
__CONFIG(HS & WDTDIS );
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 20000000
#endif
unsigned char i;
void kieu_1(void);
void kieu_2(void);
void kieu_3(void);
int main()
{
TRISA=0X00;
TRISB=0X00;
TRISC=0X00;
while(1)
{
kieu_1();
kieu_2();
kieu_3();
}
}
void kieu_1()
{
RA0=1;
for(i=0;i<5;i++)
__delay_ms(20);
RA0=0;
RA1=1;
for(i=0;i<5;i++)
__delay_ms(20);
RA1=0;
RA2=1;
for(i=0;i<5;i++)
__delay_ms(20);
RA2=0;
RA3=1;
for(i=0;i<5;i++)
__delay_ms(20);
RA3=0;
RB0=1;
}
void kieu_2()
{
for(i=0;i<5;i++)
__delay_ms(20);
RB0=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB0=0;
RB1=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB1=0;
RB2=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB2=0;
RB3=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB3=0;
RB4=1;
}
void kieu_3()
{
for(i=0;i<5;i++)
__delay_ms(20);
RB4=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB4=0;
RB5=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB5=0;
RB6=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB6=0;
RB7=1;
for(i=0;i<5;i++)
__delay_ms(20);
RB7=0;
RC0=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC0=0;
RC1=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC1=0;
RC2=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC2=0;
RC3=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC3=0;
RC4=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC4=0;
RC5=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC5=0;
RC6=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC6=0;
RC7=1;
for(i=0;i<5;i++)
__delay_ms(20);
RC7=0;
}