سلام دوستان
من تازه کار با ARM رو شروع کردم و دارم با lpc2138 کار می کنم ولی الان توی راه اندازی adc به مشکل خوردم توی اینترنت هرچی سرچ زدم هیچی نبود جز یکی دوتا برنامه آماده بدون هیچگونه توضیحی!!!لطفا یه کمک برسونید که بد گیرم
در ضمن این برنامه رو هم گرفتم ولی چیزی زیادی ازش متوجه نشدم
من تازه کار با ARM رو شروع کردم و دارم با lpc2138 کار می کنم ولی الان توی راه اندازی adc به مشکل خوردم توی اینترنت هرچی سرچ زدم هیچی نبود جز یکی دوتا برنامه آماده بدون هیچگونه توضیحی!!!لطفا یه کمک برسونید که بد گیرم
در ضمن این برنامه رو هم گرفتم ولی چیزی زیادی ازش متوجه نشدم
-width: 0px; "> <#include "LPC23xx.h"
static unsigned short ADC_Read(void)
{
unsigned int i;
AD0CR |= 0x01000000; // Start A/D Conversion
do
{
i=AD0DR0; // Read A/D Data Register
while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion}
return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value
}
main (void) {
unsigned short current_value,last_value,temp,value,n;
SCS=SCS | 1;
FIO0DIR = 0x00000FF0; /* P0.4..11 defined as Outputs */
/* Power enable, Setup pin, enable and setup AD converter interrupt
*/
PINSEL1 = 0x4000; /* AD0.0 pin function select */
PCONP |= (1 << 12); /* Enable power to AD block */
AD0CR = 0x00200301; /* Power up, PCLK/4, sel AD0.0 */
while(1){
current_value=ADC_Read();
if (current_value!=last_value)
{
value=current_value>>2;
FIO0CLR=0x0ff;
FIO0SET=value<<4;
last_value=current_value;
}
}
return 0;
}
Á{ É ÃZ¼ É ÃÁ
اگه در مورد این برنامه هم یه توضیحی بدین ممنون می شم که مثلا تو هر خط چه اتفاقی افتاده؟؟
static unsigned short ADC_Read(void)
{
unsigned int i;
AD0CR |= 0x01000000; // Start A/D Conversion
do
{
i=AD0DR0; // Read A/D Data Register
while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion}
return (i >> 6) & 0x03FF; // bit 6:15 is 10 bit AD value
}
main (void) {
unsigned short current_value,last_value,temp,value,n;
SCS=SCS | 1;
FIO0DIR = 0x00000FF0; /* P0.4..11 defined as Outputs */
/* Power enable, Setup pin, enable and setup AD converter interrupt
*/
PINSEL1 = 0x4000; /* AD0.0 pin function select */
PCONP |= (1 << 12); /* Enable power to AD block */
AD0CR = 0x00200301; /* Power up, PCLK/4, sel AD0.0 */
while(1){
current_value=ADC_Read();
if (current_value!=last_value)
{
value=current_value>>2;
FIO0CLR=0x0ff;
FIO0SET=value<<4;
last_value=current_value;
}
}
return 0;
}
Á{ É ÃZ¼ É ÃÁ
دیدگاه