• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 計算問題
#2
高級會員
高級會員


查看用戶資訊
不好意思 我現在只有一個a/d的值 另一個為我設定

發表於: 2007/6/23 16:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


計算問題
#1
高級會員
高級會員


查看用戶資訊
我現在用c寫了有關 於 e=p(n)-p(n-1)/v(n)-v(n-1)這樣的一個式子 因為我利用a/d的方式將資料放在我所設定的暫存器中(也就是p 和v的值)我利用了 *和&讓 新資料和舊資料相減但是我測試結果就是無法無預期 不知道有人有這樣經驗ㄇ?可以討論依下

#include <pic.h> // processor if/def file
#include "cnfig877a.h"
unsigned char i ;

//***************************
// A/D延遲
//*****************************
void ADdelay(unsigned char i)
{
while(i--);
}
//**********************************
//* Function Prototype Declaration
//**********************************
void Init_IO(void);
void Init_Adc_1( void );
void A2D_1(void);
void calculate(float A2, float *A4);

//============================================================
// **** Establish PIC16F877A Configuration Word
// **** == HS Oscillator Mode
// **** == Brown-Out Detect Enabled
// **** == Watch-Dog Timer Off
// **** == Code Protect Off
// **** == Low Voltage Programming Off
// **** == ICD2 Debug Mode On

__CONFIG ( HS_OSC & BODEN_ON & WDT_OFF & CP_OFF & LVP_OFF & DEBUG_ON );
//==========================================================

unit
int AD_10bit_1;
struct
{
char AD_LSB_1;
char AD_MSB_1;
}
AD_Byte_1;
}
AD_Int_1;

/*****************************
INITIALIZE I/O PORT
*****************************/

void Init_IO(void)
{
ADCON1=0b00000110; TRISD=0x00;
PORTD=0x80; TRISA0=1; }

/*****************************************
Initialize A/D & Comparator Module
******************************************/
void Init_Adc_1( void )
{
ADCON0=0b10000001; ADCON1=0b00000100; ADFM=1;
}


/***********************************
Convert A/D Channel
************************************/
void A2D_1(void )
{
float temp_1;
ADGO = 1;
while (ADGO) ;
AD_Int_1.AD_Byte_1.AD_MSB_1=ADRESH;
AD_Int_1.AD_Byte_1.AD_LSB_1=ADRESL;
temp_1= ADRESH *256+ ADRESL;
}
//*******************************************
// calculate
//*******************************************
void calculate(float A2, float *A4)
{

float a,b;
float e;
a=2;
b=(A2-*A4);
e=b/a;
if(e<0)
{
RB1=1;
}
else
{
RB1=0;
}
*A4=A2;
}





//***************************************
//* Program Main ( ) *
//***************************************
void main(void)
{
float A2, A4,temp_1;
unsigned int j;
Init_IO();

while(1)
{
Init_Adc_1();
ADdelay(2);
A2D_1();
A4=temp_1;


for( j=1; j<65535; j++)
{
A2=temp_1;
calculate(A2, &A4);

}
}
}

發表於: 2007/6/23 16:31
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------