📄 main.c
字号:
/*****************************************************************************
使用MCU: LM3S1138
开发环境:IAR5.5
硬件说明:用于主控板上位机程序
程序说明:
完成日期:2010.5.22
版本:V0.1
******************************************************************************/
#include <stdio.h>
#include "systemInit.h"
#include "function.h"
#include "LM3S_I2CM.h"
#include "ZLG7290.h"
#include "24C16.h"
#include "check.h"
#include "LM3S_UART.H"
tI2CM_DEVICE zlg7290;//定义一个7290机构体
tI2CM_DEVICE zlg7290_One;//定义一个7290机构体 用于数码管显示的I2C1
tI2CM_DEVICE tmp101;
unsigned char TMP101_cBuf[2]={0x60,0};//即便只写入一个数据也必须设置此数组为2元素,而不能只是设定一个指针变量
unsigned char Flash_frequency[2] = {0x00}; //数码管数字显示闪烁频率
//主函数(程序入口)
int main(void)
{
clockInit(); //时钟初始化:晶振,6MHz
GPIOB_IntInit(); //ZLG7290中断PB0初始化函数
I2CM_Init_One(); //I2C1主机初始化
I2CM_Init();
BuzzerInit(); //蜂鸣器初始化函数
Timer0_Init(); //定时器0初始化函数
Timer3_Init(); //定时器1初始化函数
Timer2_Init(); //定时器2处死缓函数
ADC_Init(); //ADC初始化函数
UART0_Init(); // UART0初始化
UART1_Init(); // UART0初始化
GPIO_Init(); //单片机GPIO初始化
I2CM_DeviceInitSet_One(&zlg7290_One, 0x70 >> 1, 0, 1, cBuf, 0); //暂先考虑寄存器地址长度为一个字节的情况
ZLG7290_WriteReg_One(ZLG7290_FlashOnOff,Flash_frequency);//配置7290闪烁寄存器 使得闪烁最快0x00为最快
I2CM_DeviceInitSet(&zlg7290, 0x71 >> 1, 0, 1, cBuf, 0); //暂先考虑寄存器地址长度为一个字节的情况
I2CM_DeviceInitSet(&tmp101, 0x94 >> 1, 0, 1, (void*)0, 0);//100的地址
I2CM_DeviceDataSet(&tmp101, 0x01,TMP101_cBuf,1);
I2CM_DataSend(&tmp101);
Error_Code = Self_checking(); //获取系统自检的错误代码 ,正常时返回 0
while(Error_Code!=0)
{
Error_Display(); //显示Error_Code所对应的错误信息
Key_Deal(); //按键处理 读取按键值
}
ClearAll(0,5);
ClearAll_LED(0,3); //清除所有LED
/*WriteSetDataToEEPROM(50,1234);
Delay(0x1fff); //读写中间必须有延时
DispPresent_Data[0] = ReadSetDataFromEEPROM(50); */
read24C16_mode = 0;
switch(read24C16_mode)
{
case 0 :
MOde_flag = 0;
break; //显示横纹模式下的焊枪位置
case 1 :
MOde_flag = 1;
break; //显示单道模式下的焊枪位置
case 2 :
MOde_flag = 2;
break; //显示摆动模式下的焊枪位置
case 3 :
MOde_flag = 3;
break; //显示其他模式下的焊枪位置
default :
break;
}//end switch(read24C16_mode)
//产生时间片的定时
TimerLoadSet(TIMER3_BASE , TIMER_A , 1500UL); // 设置定时器初值 决定定时多久 定时50ms
TimerEnable(TIMER3_BASE , TIMER_A); // 使能Timer3A
Led_Display(1,0X82);
Led_Display(2,0x80);
First_circle(); //焊机控制初次执行程序
while(1)
{
Key_Deal(); //按键处理 读取按键值
Display_Show(); //显示设定函数
Display(MOde_flag,Function_Num,Seg_Flag); //显示函数
Mode_select(); //模式选择函数
Shengjiang_contrl(); //升降控制函数
Hengyi_contrl(); //横移控制函数
Lasi_contrl(); //拉丝机控制函数
Hengyi_Zero(); //横移零点和回零点函数
//Shengjiang_Zero(); //升降零点和回零函数
Start_Stop_Arc(); //起停弧函数
Alarm_Driver(); //音响驱动函数
Di_Do_Deal(); //数字量输入输出处理
if(Mode_other)
Other_Mode(); //其它模式函数
else if(Mode_dandao)
Dandao_Mode(); //单道焊函数 横移电机速度位置正确、拉丝机速度启停正确、升降电机速度提枪高度正确。
else if(Mode_baidong)
Baidong_Mode(); //摆动焊函数
else
Hengwen_Mode(); //横纹焊函数
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -