?? main1.c
字號(hào):
/*-------------------------------------------------------
FILE NAME : main.c
DESCRIPTION : BS1084 vector function Generator main.
VERSION : 0.0.0 (C)aureole
AUTHOR : Aureole
CREATE DATE : 3.30.2006
MODIFY DATE : ---
LOGS :-\
1. First create for hardware test. 3.30.2006
---------------------------------------------------------*/
//--------------------Include files-----------------------//
#include "..\include\config.h"
#include "..\include\main.h"
#include "..\include\ltc2600.h"
#include "..\include\spi.h"
#include "..\include\ad9958.h"
#include "..\include\common.h"
#include "..\include\uart.h"
#include "..\include\my_lib.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//-------------------Variable ----------------------------//
ARM_PORT p0,p1;
WAVEFORM_STRUCT parameter[2]={
{WAVEFORM_SINE,DEFAULT_FREQUENCY,DEFAULT_AMPLITUDE,(float)0.0},
{WAVEFORM_SINE,DEFAULT_FREQUENCY,DEFAULT_AMPLITUDE,(float)0.0}
};
unsigned int channel=0;
char buffer[BUFFER_SIZE]; //buffer
//-------------------Function prototype-------------------//
void initialize_system(void);
void set_relay(void);
/*--------------------------------------------------------
NAME : main
ENTRY TYPE: void
RETURN TYPE: void
PURPOSE : ---
VERSION : 0.1
DESCRIPTION:
CREATE DATE: 3.30.2006
LOGS : 1.first create;
---------------------------------------------------------*/
int main (void)
{
unsigned char feedback=0,command_ready=0;
double temp=0;
int j=0;
initialize_system();
while(1){
//command receive and feedback;
if(uart0_receive_ok_flag){
uart0_receive_ok_flag=FALSE;
if(!feedback){
if(!strcmp(receive_buffer,"ERROR\r\n"))goto aa;
feedback=TRUE;
strcpy(buffer,receive_buffer);
send_string_to_uart0(receive_buffer);
clear_receive_buffer();
aa:;
}else{
if(!strcmp(receive_buffer,"OK\r\n"))command_ready=1;
feedback=FALSE;
}
}
//command interpret
if(command_ready){
command_ready=FALSE;
if(!strncmp(buffer,"FREQ",4)){
temp=__atof(buffer+5);
set_frequency(CHANNEL_A_B,temp);
}
}
if(j++==2800000){LED_ON};
if(j==2850000){LED_OFF
j=0;};
}
return 0;
}
/*--------------------------------------------------------
NAME : initialize_system
ENTRY TYPE: void
RETURN TYPE: void
PURPOSE : ---
VERSION : 0.1
DESCRIPTION:
CREATE DATE: 4.5.2006
LOGS : 1.first create;
---------------------------------------------------------*/
void initialize_system(void)
{
unsigned long i;
set_sine_ac_zero(cal_a.sine_ac_zero,cal_b.sine_ac_zero);
set_squa_ac_zero(cal_a.squa_ac_zero,cal_b.squa_ac_zero);
#ifdef DEBUG_FROM_UART1
initialize_uart1();
#endif
#ifdef DEBUG_FROM_UART1
send_string_to_uart1((char *)"----------DEMON FOR VECTOR----------\r\n\r\n\r\n");
send_string_to_uart1((char *)"# set CHANNEL A&B SINE/SQUA ac zero success!\r\n");
#endif
set_relay();
INITIALIZE_LED
LED_ON
for(i=0;i<800000;i++); //power on delay;
initialize_master_spi();
#ifdef DEBUG_FROM_UART1
send_string_to_uart1((char *)"# Initialize master spi success!\r\n");
#endif
initialize_ad9958();
#ifdef DEBUG_FROM_UART1
send_string_to_uart1((char *)"# Initialize AD9958 success!\r\n");
#endif
set_frequency(CHANNEL_A,8000000.0);
set_frequency(CHANNEL_B,8000000.0);
set_phase(CHANNEL_A,0.0);
initialize_uart0();
LED_OFF
IO0DIR|=(1<<16);
IO0DIR|=(1<<17);
p0.bits.bit16=1;
p0.bits.bit17=1;
IO0PIN=p0.value;
set_amplitude(CHANNEL_A,parameter[0].waveform,20.0);
set_amplitude(CHANNEL_B,parameter[1].waveform,20.0);
send_string_to_uart1((char *)"# Initialize system success!\r\n");
}
/*--------------------------------------------------------
NAME : clear_buffer
ENTRY TYPE: void
RETURN TYPE: void
PURPOSE : ---
VERSION : 0.1
DESCRIPTION:
CREATE DATE: 4.8.2006
LOGS : 1.first create;
---------------------------------------------------------*/
void clear_buffer(void)
{
memset(buffer,0,BUFFER_SIZE);
}
void set_relay(void)
{
unsigned char i;
IO0DIR|=(1<<12);
IO0DIR|=(1<<13);
p0.bits.bit12=0;
p0.bits.bit13=0;
IO0PIN=p0.value;
for(i=0;i<8;i++){
p0.bits.bit12=1;
IO0PIN=p0.value;
p0.bits.bit13=1;
IO0PIN=p0.value;
p0.bits.bit13=0;
IO0PIN=p0.value;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -