PDA

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



pirozy
21-08-2014, 12:12
سلام
دوستان من یه برنامه نوشتم برای avr که به با یه حلقه پورت سریال میکرو رو چک می کنه اگه کاراکتر مورد نظر رو دریافت کرد از حلقه بیرون میاد و تا رسیدن کاراکتر مورد نظر بعدی داده های دریافتی از پورت سریال رو تو یه ارایه ذخیره می کنه
برنامه به خوبی کار می کنه ولی ولی وقتی نویز زیاد میشه میکرو هنگ می کنه و من اصلا نمیخوام میکرو هنگ کنه
برای همین گفتم برم سراغ LPC1768 هم خیلی قدرتمنده و هم نویز کمتر میگیره
یه برنامه ساده نوشتم که اگه از پورت سریال OK دریافت کرد ال ای دی رو روشن کنه و اگه NO دریافت کرد ال ای دی رو خاموش کنه
باورتون نمیشه وقتی روی LPC1768 ریختم افتضاح کار کرد
اونم تو کلاک 96 مگاهرتز و باود ریت 57600
اصلا بعضی مواقع کار نمیکنه و بعضی مواقع با تاخیر کار می کنه در حالی که بدونه نویز تو AVR خیلی با دقت کار میکنه حتی یه خطا هم نداره منظم کار میکنه بدون تاخیر در حالی که برنامه ای که برای AVR نوشتم خیلی پیچیده تر از برنامه ی LPC1768 هستش
واقعا این LPC1768 نا امیدم کرد


#include <LPC17xx.h>
#include <string.h>
#include "USART0.h"
#include "delay.h"

#define BLUE_LED_ON LPC_GPIO0->FIOSET |=(1<<1);
#define BLUE_LED_OFF LPC_GPIO0->FIOCLR |=(1<<1);
#define RED_LED_ON LPC_GPIO0->FIOSET |=(1<<0);
#define RED_LED_OFF LPC_GPIO0->FIOCLR |=(1<<0);

void Read_Response(char *Response)
{
int i=0;
unsigned char Rec_Byte=0;
while(Rec_Byte!=0x0D)
{
Rec_Byte=UART0_Read_Byte();
}
while(Rec_Byte!=0x0A)
{
Rec_Byte=UART0_Read_Byte();
}
while(Rec_Byte!=0x0D)
{
Rec_Byte=UART0_Read_Byte();
*(Response+i)=Rec_Byte;
*(Response+i+1)='\0';
i++;
}
while(Rec_Byte!=0x0A)
{
Rec_Byte=UART0_Read_Byte();
}
}

int main()
{
unsigned char status;
char r[20];
SystemInit(); // Set Clock To 96MHz
USART0_Init();
LPC_GPIO0->FIODIR=0x00000003;
RED_LED_ON;
delay_ms(200000);
RED_LED_OFF;

while (1)
{
Read_Response(r);
if(strcmp(r,"OK\r")==0)
{
BLUE_LED_ON;
}
if(strcmp(r,"NO\r")==0)
{
BLUE_LED_OFF;
}
}
}

mzarkoob
21-08-2014, 13:34
در یه محیط بی نویز این برنامه کار می کنه؟

pirozy
21-08-2014, 13:47
در یه محیط بی نویز این برنامه کار می کنه؟

اره کار می کنه
ولی برای LPC1768 به شکلی که تو بالا توضیح دادم کار می کنه
در حالی که تو avr بدونه نویز محشره و تا حالا 39000 بار توسط کامپیوتر به فاصله 100 میلی ثانیه
کدهای روشن خاموش رو به AVR می فرستم واقعا مثل ساعت کار می کنه بدونه خطا تو این 39000 بار حتی
یه ذره خطا یا تاخیر هم نداشته