วันอาทิตย์ที่ 26 สิงหาคม พ.ศ. 2550

Last WeeK

โปรแกรมภาษาซีที่ใช้โปรแกรมลงบอร์ด
int main(void)
{
unsigned int adcval;
char readin[] = {'0','0','0','0','\0'};
char readout[] = {'0','0','0','0','\0'};
char key = KEY_NULL;
unsigned int Page=0x000, InAdPage,InPageAd,count,no;
int i,z=1,j;
Initialization();

printw("This program has 2 mode.\n\r");
while(1)
{ while (key == KEY_NULL) {
key = getkey();
Delay(100);
}
if(key==KEY_MINUS)
{ z=1;
printw("Mode - SAVE\n\r");
lcd_str("save");
}else if(key==KEY_PLUS){
z=0;
printw("Mode - LOAD\n\r");
lcd_str("load");
}else if(key==KEY_ENTER) { key = KEY_NULL; break;}
key = KEY_NULL;
}
while(1)

{
if(z==1)
{ printw("GET ADC and write to dataflash\n\r");
Page=0x000,InAdPage=0x00;
Page_Erase(Page);
while(1)
{ no=1;
for(Page=0x000; Page<=0x003; Page++)
{
Page_Erase(Page);
InAdPage=0x00;
for(j=1;j<=50;j++)
{
ADC_init(1);
adcval = ADC_read();
itoa(no,readout,10);
printw(readout);
printw(" - ");
itoa(adcval,readout,10);
printw(readout);
printw("\n\r");
Buffer_Write_Enable(1,InAdPage);
count=0;
for(i=0; i<5;>
{
Buffer_Write_Byte(1,InAdPage + i,readout[i]);
count++;
if(readout[i]=='\0') break;
}
InAdPage = InAdPage + count;
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(50000);
Delay(26100);
no++;
}
Buffer_To_Page(1,Page);
}
itoa(Page,readout,10);
lcd_str(readout);
if (Page>0x003)
{ z=2; lcd_str("finish");
break; }
}
}
if(z==0)
{
printw("Read from dataflash to show\n\r");
Page=0x000,InPageAd=0x00;
while(1)
{ no=1;
for(Page=0x000; Page<=0x003; Page++)
{ InPageAd = 0x00;
for(j=1; j<=50; j++)

{
Cont_Flash_Read_Enable(Page,InPageAd);
count=0;
itoa(no,readout,10);
printw(readout); printw(" - ");
for(i=0; i<5;>
{
Page_To_Buffer(Page,1);
readin[i] = Buffer_Read_Byte(1,InPageAd+i);
count++;
if(readin[i]=='\0') break;
Usart_Tx(readin[i]);
}
InPageAd = InPageAd + count;
printw("\n\r");
Delay(500);
no++; }
}
if(Page>0x003) {
z=2;
lcd_str("complete"); break;} }
} }
return 0;}


การใช้งาน


โปรแกรมจะมีการใช้งานอยู่ 2 mode คือ save และ load
1. save คือการบันทึกข้อมูลลงใน dataflash เมื่อกด save แล้ว โปรแกรมจะบันทึกค่า volt ที่ได้มาทุกๆ 5 นาที จนครบ 200 ค่าและจะขึ้นว่า "finish"
2. load คือการนำค่าออกจาก dataflash มาขึ้นบนจอLCD เมื่อค่าที่เก็บแสดงครบแล้วจะขึ้นคำว่า "complete"
**โปรแกรมนี้จะเก็บค่าลง dataflash เมื่อมีค่าเก็บครบ 50 ค่า


สถานที่เก็บข้อมูล( ตึกวิจัย)


ทิศตะวันออก


ทิศตะวันตก



ทิศใต้





ทิศเหนือ



ไม่มีความคิดเห็น: