点光源跟踪系统课程设计(4)

2018-12-22 20:30

void motor_rev() {

unsigned char i; unsigned int j;

for (j=0; j<1; j++) //转1×n圈 {

//退出此循环程序

for (i=0; i<8; i++) //一个周期转45度 {

GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 , REV[i]);

// P1 = REV[i]; //取数据

SysCtlDelay(1 * (TheSysClock / 3000)); } } }

void motor_ffw1() {

unsigned char i; unsigned int j;

for (j=0; j<1; j++) //转1*n圈 {

for (i=0; i<8; i++) //一个周期转45度 {

GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7, FFW[i]);

// P1 = FFW[i]; //取数据 SysCtlDelay(1 * (TheSysClock / 3000)); } } }

void motor_rev1() {

unsigned char i; unsigned int j;

for (j=0; j<1; j++) //转1×n圈 {

//退出此循环程序

for (i=0; i<8; i++) //一个周期转45度 {

GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 , REV[i]);

// P1 = REV[i]; //取数据

SysCtlDelay(1 * (TheSysClock / 3000)); } } }

// ADC初始化 void adcInit(void) {

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeriEnable(SYSCTL_PERIPH_GPIOE); GPIOPinTypeOut(GPIO_PORTE_BASE,GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3);

GPIOPinTypeOut(GPIO_PORTB_BASE,GPIO_PIN_0 | GPIO_PIN_1| GPIO_PIN_2 | GPIO_PIN_3);

SysCtlPeriEnable(KEY_PERIPH); GPIOPinTypeIn(KEY_PORT, KEY_PIN);

SysCtlPeriEnable(SYSCTL_PERIPH_ADC); // 使能ADC模块 SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS); // 设置ADC采样率 ADCSequDisable(ADC_BASE, 0); // 配置前先禁止采样序列

// 采样序列配置:ADC基址,采样序列编号,触发事件,采样优先级 ADCSequConfig(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);

// ADC采样序列步进配置:ADC基址,采样序列0,步值,采样通道

ADCSequStepConfig(ADC_BASE, 0, 0, ADC_CTL_CH0); // 第0步:采样ADC0 ADCSequStepConfig(ADC_BASE, 0, 1, ADC_CTL_CH1); // 第1步:采样ADC1 ADCSequStepConfig(ADC_BASE, 0, 2, ADC_CTL_CH2); // 第2步:采样ADC2 ADCSequStepConfig(ADC_BASE, 0, 3, ADC_CTL_CH3); // 第3步:采样ADC3

ADC_CTL_END | // 结束,并 ADC_CTL_IE); // 申请中断

ADCIntEnable(ADC_BASE, 0); // 使能ADC中断 IntEnable(INT_ADC0); // 使能ADC采样序列中断 IntMasterEnable(); // 使能处理器中断

ADCSequEnable(ADC_BASE, 0); // 使能采样序列 }

// ADC采样:*pulVal保存采样结果 void adcSample(unsigned long *pulVal) {

ADCProcessorTrigger(ADC_BASE, 0); // 处理器触发采样序列 while (!ADC_EndFlag); // 等待采样结束

ADC_EndFlag = false; // 清除ADC采样结束标志 ADCSequDataGet(ADC_BASE, 0, pulVal); // 自动读取全部ADC结果 }

int main(void) {

unsigned char r,N=64; //N 步进电机运转圈数 unsigned long ulVal[8],v[8];

int left,right,up,down,limit360l=0,limit180u=0,limit360r=0,limit180d=0; char s[40]; unsigned long i;

jtagWait(); // 防止JTAG失效,重要! clockInit(); // 时钟初始化:PLL,20MHz uartInit(); // UART初始化 adcInit(); // ADC初始化

for (;;) {

adcSample(ulVal); // ADC采样

for (i = 0; i < 8; i++) {

v[i] = (ulVal[i] * 3) / 1024; // 转换成电压值

sprintf(s, \ // 采样值格式化为电压值 uartPuts(s); // 通过UART输出电压值 }

if( ((v[1]+v[2])-(v[0]+v[3])) > 3 ) left = 1; else left = 0;

if( ((v[0]+v[3])-(v[2]+v[1])) > 3 ) right = 1; else right = 0;

if( ((v[2]+v[3])-(v[1]+v[0])) > 3 ) up = 1; else up = 0;

if( ((v[1]+v[0])-(v[2]+v[3])) > 3) down = 1; else down = 0;

SysCtlDelay(15 * (TheSysClock / 3000)); // 延时约1500ms if (GPIOPinRead(KEY_PORT, KEY_PIN) == 0x00) // 如果按下KEY {

// GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED for(r=0;r

motor_ffw(); //电机正转

} }

if (right == 1 )//&& limit360r < 181) // 如果按下KEY {

// GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED for(r=0;r

motor_ffw(); //电机正转

} right = 0;

limit360r += 45; limit360l -= 45; }

if (left == 1 )//&& limit360l < 181) // 如果按下KEY {

// GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED for(r=0;r

motor_rev(); //电机正转

} left = 0; limit360r -= 45; limit360l += 45; }

if (up == 1 )//&& limit180u < 91) // 如果按下KEY {

// GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED for(r=0;r

motor_rev1(); //电机正转

} up = 0;

limit180u += 45; limit180d -= 45; }

if (down == 1 )//&& limit180d < 91) // 如果按下KEY {

// GPIOPinWrite(LED_PORT, LED_PIN, 0x00); // 点亮LED for(r=0;r

motor_ffw1(); //电机正转

}

down = 0; limit180u -= 45; limit180d += 45; }


点光源跟踪系统课程设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年行政组织学形成性考核册参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: