- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "adc.h"
- #include "dac.h"
- #include "key.h"
- #include "Drive_DAC.h"
- #include "touch.h"
- // ************ P4或DAC口作輸出 GND接地 ***********
- //清空屏幕并在右上角顯示"RST"
- void Load_Drow_Dialog(void)
- {
- LCD_Clear(WHITE);//清屏
- POINT_COLOR=BLUE;//設置字體為藍色
- LCD_ShowString(200-24,0,200,16,16,"RST");//顯示清屏區(qū)域
- POINT_COLOR=RED;//設置畫筆藍色
- }
- void rtp_test(void)
- {
- tp_dev.scan(0);
- if(tp_dev.sta&TP_PRES_DOWN) //觸摸屏被按下
- {
- if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
- {
- if(tp_dev.x[0]>30&&tp_dev.y[0]<230+16&&tp_dev.y[0]>210+16)
- {
- ddsStructData.wave = SAWTOOTHWAVE;
- }
- if(tp_dev.x[0]>30&&tp_dev.y[0]<210+16&&tp_dev.y[0]>190+16)
- {
- ddsStructData.wave = SQUAREWAVE;
- }
- if(tp_dev.x[0]>30&&tp_dev.y[0]<190+16&&tp_dev.y[0]>170+16)
- {
- ddsStructData.wave = TRIANGLEWAE;
- }
- if(tp_dev.x[0]>30&&tp_dev.y[0]<170+16&&tp_dev.y[0]>150+16)
- {
- ddsStructData.wave = SINWAVE;
- }
- if(tp_dev.x[0]>125&&tp_dev.x[0]<140&&tp_dev.y[0]<90+16)
- {
- ddsStructData.hz += 500;
- if(ddsStructData.hz == 3000) ddsStructData.hz = 500;
- }
- if(tp_dev.x[0]>140&&tp_dev.y[0]<90+16)
- {
- ddsStructData.hz -= 500;
- if(ddsStructData.hz < 500) ddsStructData.hz = 3000;
- }
- if(tp_dev.x[0]>125&&tp_dev.x[0]<140&&tp_dev.y[0]<110+16&&tp_dev.y[0]>90+16)
- {
- ddsStructData.vpp += 1;
- if(ddsStructData.vpp == 4) ddsStructData.vpp = 1;
- }
- if(tp_dev.x[0]>140&&tp_dev.y[0]<110+16&&tp_dev.y[0]>90+16)
- {
- ddsStructData.vpp -= 1;
- if(ddsStructData.vpp < 1) ddsStructData.vpp = 4;
- }
- }
- }else delay_ms(10); //沒有按鍵按下的時候
- }
- int main(void)
- {
- u16 adcx;
- float temp;
- u8 t=0;
- u16 dacval=0;
- u8 key;
- float result;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統(tǒng)中斷優(yōu)先級分組2
- delay_init(168); //初始化延時函數(shù)
- uart_init(115200); //初始化串口波特率為115200
-
- LED_Init(); //初始化LED
- LCD_Init(); //LCD初始化
- KEY_Init(); //按鍵初始化
- POINT_COLOR=RED;
- LCD_ShowString(30,20,200,16,16,"*********- dds -*********");
- LCD_ShowString(30,70,200,16,16,"------ Parameter ------");
- LCD_ShowString(30,90,200,16,16,"f:");
- LCD_ShowString(130,90,200,16,16,"+");
- LCD_ShowString(160,90,200,16,16,"-");
- LCD_ShowString(90,90,200,16,16,"Hz");
- LCD_ShowString(30,110,200,16,16,"vpp:");
- LCD_ShowString(130,110,200,16,16,"+");
- LCD_ShowString(160,110,200,16,16,"-");
- LCD_ShowString(90,110,200,16,16,"v");
- LCD_ShowString(30,130,200,16,16,"------ wave ------");
- LCD_ShowString(30,170,200,16,16,"1.SINWAVE");
- LCD_ShowString(30,190,200,16,16,"2.TRIANGLEWAE");
- LCD_ShowString(30,210,200,16,16,"3.SQUAREWAVE");
- LCD_ShowString(30,230,200,16,16,"4.SAWTOOTHWAVE");
- DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//初始值為0
- tp_dev.init(); //觸摸屏初始化
- ddsStructData.hz = 1000;
- ddsStructData.vpp = 1;
- while(1)
- {
- u16 i=0;
- dacInit();
- dacOpen();
- rtp_test();
- LCD_ShowxNum(60,110,(float)ddsStructData.vpp,3,16,0);
- LCD_ShowxNum(50,90,ddsStructData.hz,4,16,0);
- if(ddsStructData.wave==TRIANGLEWAE)
- {
- LCD_ShowString(30,150,200,16,16,"wave:");
- LCD_ShowString(80,150,200,16,16,"TRIANGLEWAE ");
- }
- if(ddsStructData.wave==SQUAREWAVE)
- {
- LCD_ShowString(30,150,200,16,16,"wave:");
- LCD_ShowString(80,150,200,16,16,"SQUAREWAVE ");
- }
- if(ddsStructData.wave==SINWAVE)
- {
- LCD_ShowString(30,150,200,16,16,"wave:");
- LCD_ShowString(80,150,200,16,16,"SINWAVE ");
- }
- if(ddsStructData.wave==SAWTOOTHWAVE)
- {
- LCD_ShowString(30,150,200,16,16,"wave:");
- LCD_ShowString(80,150,200,16,16,"SAWTOOTHWAVE");
- }
- delay_ms(300);
- }
- }
復制代碼
|