PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در برنامه keil



mohamad_musav
26-09-2012, 17:42
سلام دوستان
یه برنامه ساده با کامپایلر keil می نویسم وقتی میخوام کامپایل کنم از فایل هدر error میگیره. ببینید این برنامشه. مشکل کجاست نمی دونم. کسی هست کمک کنه؟ممنون میشم.


#include <AT91SAM7X256.H>
#include <libe-AT91SAM7X256.h>
void wait (void);
int main (void) {
AT91F-PIO-Cfg Output (AT91C-BASE,AT91-PIO-PB0);
AT91F-PIO-Clear Output (AT91C-BASE,AT91C-PIO-PB0);
wait();
AT91F-PIO-Set Output (AT91C-BASE,AT91-PIO-PB0);
wait();
}
void wait (void) {
unsigned int n;
for (n=0 ; n<7372800 ; n++);
}

از این خطا میگیره


#include <libe-AT91SAM7X256.h>

اینم ارورشه که موقع کامپایل می ده.
ex1-1.c(2): error: #5: cannot open source input file "libe-AT91SAM7X256.h": No such file or directory
Target not created
:(

kavir
26-09-2012, 19:43
سلام

#include <libe_AT91SAM7X256.h>
این کتابخونه ها هم توی این مسیر کپی کنید
\Keil\ARM\INC\Atmel\SAM7X

mohamad_musav
26-09-2012, 20:01
جناب مدیر دست شما درد نکنه اما باز همون error رو میده.:(

kavir
26-09-2012, 20:34
خوب یه دقتی توی اسم فایل بزنید حل میشد:
lib_AT91SAM7X256.h

mohamad_musav
29-09-2012, 00:27
سلام
میخوام بدونم این دستور برای چیه؟ تو کیل ارور میگیره


const int led_mask =[]{AT91C_PIO_PB19, AT91C_PIO_PB20, AT91C_PIO_PB21, AT91C_PIO_PB22};


اینم ارورشه
proje1.c(6): error: #29: expected an expression

mohamad_musav
01-10-2012, 22:37
چرا کیل از این دستور خطا میکیره؟ کسی میدونه؟
یکی جواب بده لطفا:(

1nafar
18-10-2012, 18:33
سلام

چرا کیل از این دستور خطا میکیره؟ کسی میدونه؟
یکی جواب بده لطفا
خطا میگه دستور شما مشکل املایی داره ، دستور صحیح به شکل زیر هست :

const int led_mask[] = { AT91C_PIO_PB19, AT91C_PIO_PB20, AT91C_PIO_PB21, AT91C_PIO_PB22,AT91C_PIO_PB23, AT91C_PIO_PB24, AT91C_PIO_PB25, AT91C_PIO_PB26};
بهتره به مجلات PMM مراجعه کنید و مطالب رو از اول بخونید . شما میتونید فایل کامل و صحیح پروژه ی بالا رو در پیوست این پست دانلود کنید .

mohamad_musav
21-10-2012, 17:43
سلام جناب آقای 1nafar عزیز
ممنونم که به سوالم جواب دادی. برنامه ای که توی کتاب آموزشی بود اینطوری نوشته. البته این خطاهای املایشم بخاطر چاپ خود کتابه.


# include <AT91SAM7X256.H>
# include <lib_AT91SAM7X256.h>
# define SPEED (18432000/1000)

# define AT91B_LED_MASK ( AT91C_PIO_PB19|AT91C_PIO_PB20|AT91C_PIO_PB21|AT91C _PIO_PB22 )

const int led_mask []={AT91C_PIO_PB19, AT91C_PIO_PB20, AT91C_PIO_PB21, AT91C_PIO_PB22};
unsigned int LEDSpeed =50*SPEED;
void change_speed(void){
if((AT91F_PIO_GetInput (AT91C_BASE_PIOA)& AT91C_PIO_PA27)==0){
if(LEDSpeed>SPEED)LEDSpeed = -SPEED;
}
if((AT91F_PIO_GetInput(AT91C_BASE_PIOA)& AT91C_PIO_PA28)==0){
if(LEDSpeed <((1843200*73/14)/2)) LEDSpeed = +SPEED;
}
}
void wait (void){
unsigned int n;
change_speed();
for(n=0;n<LEDSpeed;n++);
while(((AT91F_PIO_GetInput(AT91C_BASE_PIOA)& AT91C_PIO_PA29)==0));
}
int main (void){
int i;
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91B_LED_MASK );
AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91B_LED_MASK );
for(;;){
for(i=0;i<4;i++){
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,led_mask[i]);
wait();
AT91F_PIO_SetOutput(AT91C_BASE_PIOB,led_mask[i]);
wait();
}
for((i=4 -1);i>=0;i--){
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,led_mask[i]);
wait();
AT91F_PIO_SetOutput(AT91C_BASE_PIOB,led_mask[i]);
wait();
}
}
}


جواب داد.بازم ازتون ممنونم