Niedawno kupilem książke (Programowanie mikroprocesorów 8051 w języku C) programator do 2051 i 4051, 89C2051 i resztę elektroniki. W książce są przykladowe programy do 89C51ED2 i program powodujący mruganiem diody led ma taką postać :
/*****************************************************************
led.c (mruganie diody LED)
Program powoduje mruganie diody LED dołączonej do P3_2.
*****************************************************************/
#include <51xD2.h> // zbiór definiujący rejestry procesora
//----------------------------------------------------------------
void main(void) {
WORD i;
while (1) { // pętla bez końca
P3_2 = !P3_2; // negacja stanu bitu P3_2
for(i=0;i<0xffff;i++){}; // opóźnienie czasowe
}
}
Więc chcąc napisać program do 2051, uruchamiam Keil, tworzę nowy projekt w nowym folderze, pyta mnie o procesor więc wybieram AT89C2051, wpisuje program:
/*****************************************************************
led.c (mruganie diody LED)
*****************************************************************/
#include <2051.h> // zbiór definiujący rejestry procesora
//----------------------------------------------------------------
void main(void) {
WORD i;
while (1) { // pętla bez końca
P1_2 = !P1_2; // negacja stanu bitu P3_2
for(i=0;i<0xffff;i++){}; // opóźnienie czasowe
}
}
naciskam F7 (Build target) i plik typu HEX nie zostaje utworzony, oto tekst z okienka Build po próbie kompilacji:
Build target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
ADDRESS: 080AH
Program Size: data=9.0 xdata=0 code=15
"newproject" - 0 Error(s), 2 Warning(s).
od kilku dni próbuję i niewiem gdzie są blędy, ciągle ten sam komunikat, domyślam się że zmienna "i" jest źle zdefiniowana, ale nie wiem jak to poprawnie zrobić, w książce są jedynie przyklady do 89C51ED2. Zalanczam zrzut z ekranu, po naciśnięciu F7. Liczę na waszą pomoc
/*****************************************************************
led.c (mruganie diody LED)
Program powoduje mruganie diody LED dołączonej do P3_2.
*****************************************************************/
#include <51xD2.h> // zbiór definiujący rejestry procesora
//----------------------------------------------------------------
void main(void) {
WORD i;
while (1) { // pętla bez końca
P3_2 = !P3_2; // negacja stanu bitu P3_2
for(i=0;i<0xffff;i++){}; // opóźnienie czasowe
}
}
Więc chcąc napisać program do 2051, uruchamiam Keil, tworzę nowy projekt w nowym folderze, pyta mnie o procesor więc wybieram AT89C2051, wpisuje program:
/*****************************************************************
led.c (mruganie diody LED)
*****************************************************************/
#include <2051.h> // zbiór definiujący rejestry procesora
//----------------------------------------------------------------
void main(void) {
WORD i;
while (1) { // pętla bez końca
P1_2 = !P1_2; // negacja stanu bitu P3_2
for(i=0;i<0xffff;i++){}; // opóźnienie czasowe
}
}
naciskam F7 (Build target) i plik typu HEX nie zostaje utworzony, oto tekst z okienka Build po próbie kompilacji:
Build target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
ADDRESS: 080AH
Program Size: data=9.0 xdata=0 code=15
"newproject" - 0 Error(s), 2 Warning(s).
od kilku dni próbuję i niewiem gdzie są blędy, ciągle ten sam komunikat, domyślam się że zmienna "i" jest źle zdefiniowana, ale nie wiem jak to poprawnie zrobić, w książce są jedynie przyklady do 89C51ED2. Zalanczam zrzut z ekranu, po naciśnięciu F7. Liczę na waszą pomoc