پاسخ : برنامه های نمونه برای برد آموزشی LPC1768
سلام
فکر کنم بهتره اینجا بنویسم.
میخوام صدا رو از AD بگیرم تو فلش میکرو ذخیره کنم و اونو دوباره با DA بشنوم.
تو فاز اول صدا رو 10 ثانیه با همین برنامه به پین P1.31 دادم. با همین برنامه صدای آنالوگ رو به دیجیتال تبدیل کردم و یه آرایه ریختم (تو رم ذخیره شده). این داده ها را با برنامه DAC دوباره به آنالوگ تبدیل کردم. اما صدای اولیه ایجاد نمیشه. میشه راهنماییم کنید؟ این هم کدم:
سلام
فکر کنم بهتره اینجا بنویسم.
میخوام صدا رو از AD بگیرم تو فلش میکرو ذخیره کنم و اونو دوباره با DA بشنوم.
تو فاز اول صدا رو 10 ثانیه با همین برنامه به پین P1.31 دادم. با همین برنامه صدای آنالوگ رو به دیجیتال تبدیل کردم و یه آرایه ریختم (تو رم ذخیره شده). این داده ها را با برنامه DAC دوباره به آنالوگ تبدیل کردم. اما صدای اولیه ایجاد نمیشه. میشه راهنماییم کنید؟ این هم کدم:
کد:
#include "LPC17xx.h"
#include "adc.h"
#include "timer.h"
#include <stdio.h>
/*********************************************************************************************************
** Function name: Delay
** input parameters: ulTime
*********************************************************************************************************/
void Delay (uint32_t Time)
{
uint32_t i;
i = 0;
while (Time--) {
for (i = 0; i < 5000; i++);
}
}
/*****************************************************************************
** Function name: DACInit
**
** Descriptions: initialize DAC channel
*****************************************************************************/
void DACInit( void )
{
/* setup the related pin to DAC output */
LPC_PINCON->PINSEL1 = 0x00200000; /* set p0.26 to DAC output */
return;
}
/*****************************************************************************/
extern uint32_t timer0_counter;
int main(void)
{
uint16_t ADC_Data[200];
volatile uint16_t ;
volatile uint32_t ADC_Buf = 0;
uint8_t i,j;
int cnt=0;
SystemInit();
ADC_Init();
DACInit(); /* Initialize DAC */
init_timer( 0, TIME_INTERVAL ); // 10ms
enable_timer( 0 );
while ( timer0_counter <= 3000 ) // 10s
//while(1)
{
for(i = 0;i < 8; i++)
{
ADC_Buf = ADC_Get();
ADC_Data[cnt] += ADC_Buf;
}
ADC_Data[cnt] = (ADC_Data[cnt] / 8);
ADC_Data[cnt] = (ADC_Data[cnt] * 3300)/4096;
Delay(1000);
cnt++;
}
while (1)
{
for (j = 0; j < cnt; j++)
{
LPC_DAC->DACR = (ADC_Data[j] <<6);
}
}





45
04



دیدگاه