پاسخ : برنامه های نمونه برای برد آموزشی 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); } }
دیدگاه