資源簡介
附件中的程序是我參加電子競賽時做的,是在arm7上實現的FFT變換,已經調試成功。

代碼片段和文件信息
/*****************************************************************************
?*???adc.c:??ADC?module?file?for?NXP?LPC23xx?Family?Microprocessors
?*
?*???Copyright(C)?2006?NXP?Semiconductor
?*???All?rights?reserved.
?*
?*???History
?*???2006.08.15??ver?1.00????Prelimnary?version?first?Release
?*
******************************************************************************/
#include?“LPC23xx.h“????????????????????????/*?LPC23xx?definitions?*/
#include?“irq.h“
#include?“adc.h“
#include?“GPIO.h“
#include?“Hardware.h“
unsigned?short?ADC0IntDone?=?0;
unsigned?long?ADC0VAL_H=0;
unsigned?long?ADC0VAL_L=0;
unsigned?long?regVal=0;
unsigned?long?Cap_Done=0;
unsigned?char?time_1S=0;
unsigned?long?Cap_Count=0;
unsigned?short?ADC_Count=0;
unsigned?short?x_Input[2050];
void?GPIOHandler?(void)?__irq
{
???//IENABLE; //handles?nested?interrupt?
???if(IO0_INT_STAT_F&P0_0_INTRRUPT)
???{
?????? IO0_INT_CLR=P0_0_INTRRUPT;
? //讀取AD數據
FIO_Clr(PORT1AD_CS_P1_8?);???
FIO_Set(PORT1AD_CE_P1_9?);
FIO_Set(PORT1AD_RC_P1_1?);
ADC0VAL_L=((FIO1PIN>>14)&0x000F); ?//低4位
ADC0VAL_H=(FIO0PINL&0x00000FF0);????//高8位
??? x_Input[ADC_Count++]=(ADC0VAL_H|ADC0VAL_L);
if(ADC_Count>=2048)
{
ADC_Count=0;
T0TCR=0;
??? ADC0IntDone?=1;?
}
?
FIO_Set(PORT1AD_CS_P1_8?);??
FIO_Clr(PORT1AD_CE_P1_9?);?
???}
???//IDISABLE;
???VICVectAddr?=?0; //?Acknowledge?Interrupt?
}?
void?Gpio_Interrupt_Init()
{
???IO0_INT_EN_F?=?P0_0_INTRRUPT;
???install_irq(?EINT3_INT?(void?*)GPIOHandler?1)?;
}
void?Timer0Handler?(void)?__irq?
{??
????T0IR?=?1; //?clear?interrupt?flag
//啟動一次AD轉換
FIO_Clr(PORT1AD_CS_P1_8?);?
FIO_Clr(PORT1AD_RC_P1_1?);??
FIO_Clr(PORT1AD_A0_P1_4?);??
FIO_Set(PORT1AD_CE_P1_9?);
FIO_Set(PORT1AD_RC_P1_1?);?
FIO_Set(PORT1AD_CS_P1_8?);??
FIO_Clr(PORT1AD_CE_P1_9?);
????VICVectAddr?=?0; //?Acknowledge?Interrupt?
}
void?init_Time0()
{
PINSEL3|=0x0f000000;??//P1.28P1_29工作在匹配方式?
//PCLKSEL0=0x00000004;//使得PCLK=CCLK=72M
T0CTCR=0; //工作在定時器模式
T0PR=0x05;??????//把PCLK六分頻
T0MCR=0x00000003;??//選擇Mat0。0?和Mat0。1工作在復位方式
T0MR0=0x0000036F;????
T0EMR=0x000000f0;?//發生反轉
install_irq(?TIMER0_INT?(void?*)Timer0Handler?0?)?;
T0TCR=0;
}
void?Start_Time0()
{
?T0TCR=1;
}
void?Stop_Time0()
{
T0TCR=0;
}
void?Timer1_Handler(void)?__irq
{
//IENABLE;
regVal=T1IR; //?清除CAP1.0中斷標志
if(regVal&CAP1_1_INT)
{
T1IR|=CAP1_1_INT;
if?(!Cap_Done)
{
T1TC?=?0;
Cap_Done?=?1;
}
else
{
Cap_Count?=?T1TC;
Cap_Done?=?2;
}
}
if(regVal&MCR_INT)
{
time_1S=1;
T1IR|=MCR_INT;
} ?
//IDISABLE;
????VICVectAddr?=?0x00; //?向量中斷處理結束
}
void?init_Timer1()
{
time_1S=0;
Cap_Done=0;
??? T1TCR=0;?? //定時器1禁能
T1PR=0x05;?????? //把PCLK六分頻f=3M
?? T1MR0?=?3000000/2; //0.5s
T1MCR?=?3;
??? T1CTCR=0;?
??? T1CCR=0x0030; ????//zaiCAP1_1產生一個下降沿的裝載中斷
??? install_irq(?TIMER1_INT?(void?*
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3339??2010-07-31?22:07??在LPC2368上實現的FFT程序功率\FFT\adc.c
?????文件???????1394??2007-09-06?12:59??在LPC2368上實現的FFT程序功率\FFT\adc.h
?????文件???????1957??2007-09-03?12:45??在LPC2368上實現的FFT程序功率\FFT\fft.c
????.......??????2669??2010-07-31?22:07??在LPC2368上實現的FFT程序功率\FFT\FFT.opt.bak
?????文件????????156??2007-09-03?11:38??在LPC2368上實現的FFT程序功率\FFT\FFT.plg
????.......??????2802??2010-07-31?22:07??在LPC2368上實現的FFT程序功率\FFT\FFT.Uv2.bak
????.......?????85395??2010-08-11?21:35??在LPC2368上實現的FFT程序功率\FFT\FFT.uvopt
????.......?????15938??2010-08-11?21:35??在LPC2368上實現的FFT程序功率\FFT\FFT.uvproj
?????文件???????1331??2010-08-11?11:05??在LPC2368上實現的FFT程序功率\FFT\FFT2.c
????.......??????3156??2007-09-06?17:58??在LPC2368上實現的FFT程序功率\FFT\FFT_Opt.Bak
?????文件???????3022??2010-08-11?11:05??在LPC2368上實現的FFT程序功率\FFT\FFT_Target?1.dep
????.......??????2864??2007-09-06?17:57??在LPC2368上實現的FFT程序功率\FFT\FFT_Uv2.Bak
????.......?????84628??2010-08-10?20:15??在LPC2368上實現的FFT程序功率\FFT\FFT_uvopt.bak
????.......?????15776??2010-08-02?22:19??在LPC2368上實現的FFT程序功率\FFT\FFT_uvproj.bak
?????文件???????1093??2007-09-05?17:23??在LPC2368上實現的FFT程序功率\FFT\GPIO.c
?????文件????????221??2007-09-03?11:46??在LPC2368上實現的FFT程序功率\FFT\GPIO.h
?????文件????????534??2007-09-04?22:05??在LPC2368上實現的FFT程序功率\FFT\Hardware.h
?????文件???????3412??2007-07-25?13:39??在LPC2368上實現的FFT程序功率\FFT\iap.c
?????文件????????689??2007-09-05?02:13??在LPC2368上實現的FFT程序功率\FFT\iap.h
?????文件???????2698??2007-09-03?13:52??在LPC2368上實現的FFT程序功率\FFT\irq.c
?????文件???????2500??2007-09-03?13:52??在LPC2368上實現的FFT程序功率\FFT\irq.h
?????文件???????1476??2007-09-04?20:46??在LPC2368上實現的FFT程序功率\FFT\key.c
?????文件????????225??2007-09-04?19:06??在LPC2368上實現的FFT程序功率\FFT\key.h
?????文件??????42450??2007-09-06?16:55??在LPC2368上實現的FFT程序功率\FFT\lcd.c
?????文件???????1220??2007-09-05?00:04??在LPC2368上實現的FFT程序功率\FFT\lcd.h
?????文件??????20345??2007-09-04?23:39??在LPC2368上實現的FFT程序功率\FFT\LPC2300.s
?????文件?????142751??2010-08-11?11:00??在LPC2368上實現的FFT程序功率\FFT\Lst\FFT.map
?????文件??????54665??2010-08-11?11:00??在LPC2368上實現的FFT程序功率\FFT\Lst\LPC2300.lst
?????文件??????26780??2010-08-11?10:57??在LPC2368上實現的FFT程序功率\FFT\main.c
?????文件????????305??2007-09-05?14:40??在LPC2368上實現的FFT程序功率\FFT\main.h
............此處省略47個文件信息
- 上一篇:delphi日歷控件
- 下一篇:libreoffice實現word轉pdf
評論
共有 條評論