Пример для PIC16 без каких-либо прерываний:
Этот код подходит:
/* prototypes */
void func1 (void);
void func2 (void);
void func3 (void);
void func4 (void);
void func5 (void);
void func6 (void);
void func7 (void);
void func8 (void);
void func1(void) {
/* do something here */
}
void func2(void) {
/* do something here */
}
void func3(void) {
/* do something here */
}
void func4(void) {
/* do something here */
}
void func5(void) {
/* do something here */
}
void func6(void) {
/* do something here */
}
void func7(void) {
/* do something here */
}
void func8(void) {
/* do something here */
}
int main {
func1();
func2();
func3();
func4();
func5();
func6();
func7();
func8();
}
Этот код не подходит:
/* prototypes */
void func1 (void);
void func2 (void);
void func3 (void);
void func4 (void);
void func5 (void);
void func6 (void);
void func7 (void);
void func8 (void);
void func1(void) {
func2();
}
void func2(void) {
func3();
}
void func3(void) {
func4();
}
void func4(void) {
func5();
}
void func5(void) {
func6();
}
void func6(void) {
func7();
}
void func7(void) {
func8(); /* here the stack reached 8. this will cause a problem */
}
void func8(void) {
/* do something here */
}
int main {
func1();
}