正在自学C,请大家多多指点,共同进步!谢谢
正在自学C,请大家多多指点,共同进步!谢谢
int HallState2;
int HallState3;
int HallVal=1; //所有3个霍尔传感器/二进制值
int mSpeed =0; //前进速度
int bSpeed =0; //制动电平
int throttle =0; //油门,这个变量是用于模拟测量节气门电位计的位置
int TCCR2B;
/
void setup() {
pinMode(0,INPUT); //设置油门拉杆信号输入
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,OUTPUT); //IN1,2,3 // 输出到 L6234 驱动
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT); // EN 1,2,3,
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
Serial.begin(9600);
//先清除三个分频器的位
int prescalerVal = 0x07; //创建一个预分频器值Val1 变量并设置它的二进制数为00000111
int prescalerVal2 = 1; //设置另一个分频器值Val2 等于 二进制数11111000
TCCR1B&=~prescalerVal; // Set PWM for pins 9,10 to 32 kHz// TCCR0B 跟 预分频器的二进制数值(11111000)相与
TCCR1B|=prescalerVal2; //现在设置适当的预分频器的位 // TCCR0B 跟分频器(00000001) OR
TCCR2B&=~prescalerVal; // Set PWM for pins 3,11 to 32 kHz (Only pin 11 is used in this program)//tccr0b 与等于 分频器二进制数11111000
TCCR2B|=prescalerVal2; //先清除所有tccr0b三分频器的值 //tccr0b or//现在设置适当的预分频器的位 或与分频器的二进制数00000001
}
///
void loop()
{ //MAIN LOOP OF THE PRGROM
//time = millis();
//Serial.println(time);
//Serial.print("\n");
throttle = analogRead(0); //读节气门电位器的值
mSpeed = map(throttle, 512, 1023, 0, 255); //电机速度 映射成 遥控杆位置(电位计)的一半
bSpeed = map(throttle, 0, 511, 255, 0); //制动电平 也映射 遥控杆位置的另一半 //mSpeed = 100; //used for debugging
HallState1=digitalRead(3);
HallState1=digitalRead(4);
//digitalWrite(8, HallState1); // 当相应的传感器高时,LED开启,原本用于调试
//digitalWrite(9, HallState2);
//digitalWrite(10, HallState3);
Serial.println(HallState1);
Serial.print("H2:");
Serial.println(HallState2);
Serial.print("H3:");
Serial.println(HallState3);
Serial.println(" ");
Serial.println(mSpeed);
Serial.println(HallVal);
Serial.print("\n");
delay(1000);
/*
T1 = digitalRead(2); // 监控晶体管输出Monitor transistor outputs
T1 = ~T1;
T2 = digitalRead(4);
T2 = ~T2;
T3 = digitalRead(5);
T3 = ~T3;
Serial.print(T1);
Serial.print("\t");
Serial.print(T2);
Serial.print("\t");
Serial.print(T3);
Serial.print("\n");
Serial.print("\n");
Serial.print(digitalRead(3));
Serial.print("\t");
Serial.print(digitalRead(9));
Serial.print("\t");
Serial.println(digitalRead(10));
Serial.print("\n");
Serial.print("\n"); */
delay(500);
{ switch (HallVal) //换向
{
case 3: //PORTD = B011xxx00; //0-7脚(P1)输出 , XXX指的是霍尔输入,六步换向步奏不变(正转)
//Desired Output for pins 0-7 xxx refers to the Hall inputs, which should not be changed
PORTD&=B00011111;
PORTD|=B01100000;
analogWrite(9,mSpeed); // A相PWM 高侧晶体管
analogWrite(10,0); // B相关闭(占空比= 0)
analogWrite(11,255); // C相打开(占空比= 100%) 低侧晶体管
break;
case 1: //PORTD = B001xxx00;
PORTD&=B00011111;
PORTD|=B00100000;
analogWrite(9,mSpeed); //A相PWM 高侧晶体管
analogWrite(10,255); //B相打开(占空比= 100%) 低侧晶体管
analogWrite(11,0); //C相关闭(占空比= 0)
break;
case 5: //PORTD = B101xxx00;
PORTD&=B00011111;
PORTD|=B10100000;
analogWrite(9,0); //A相关闭(占空比= 0)
analogWrite(10,255); //B相打开(占空比= 100%)
analogWrite(11,mSpeed); //C相PWM
break;
case 4: //PORTD = B100xxx00;
PORTD&=B00011111;
PORTD|=B10000000;
analogWrite(9,255);
analogWrite(10,0);
analogWrite(11,mSpeed);
break;
case 6: //PORTD = B110xxx00;
PORTD&=B00011111;
PORTD=B11000000;
analogWrite(9,255);
analogWrite(10,mSpeed);
analogWrite(11,0);
break;
case 2: //PORTD = B010xxx00;
PORTD&=B00011111;
PORTD|=B01000000;
analogWrite(9,0);
analogWrite(10,mSpeed);
analogWrite(11,255);
break;
}
}
else{ //PORTD = B000xxx00; // 反向制动 L6234 制动时在每个阶段 低侧晶体管引脚总是拉低,上部晶体管总是在pwm 或刹车。
PORTD&=B00011111;
PORTD|=B00000000;
switch (HallVal)
{
case 3:
analogWrite(9,bSpeed);
analogWrite(10,0);
analogWrite(11,0);
break;
case 1:
analogWrite(9,bSpeed);
analogWrite(10,0);
analogWrite(11,0);
break;
case 5:
analogWrite(9,0);
analogWrite(10,0);
analogWrite(11,bSpeed);
break;
case 4:
analogWrite(9,0);
analogWrite(10,0);
analogWrite(11,bSpeed);
break;
case 6:
analogWrite(9,0);
analogWrite(10,bSpeed);
analogWrite(11,0);
break;
case 2:
analogWrite(9,0);
analogWrite(10,bSpeed);
analogWrite(11,0);
break;
}
}
//time = millis();
//Serial.println(time); //自程序启动以来打印时间prints time since program started
// Serial.print("\n");
//Serial.flush(); //注释掉这如果你会使用串口调试 uncomment this if you will use serial port for debugging
}
正在自学C,请大家多多指点,共同进步!谢谢相关推荐
- 新手上路,请大家多多关照~
各位朋友: 我是 新手,刚上路,请大家多多关照~ 我对软件编程比较感兴趣,但是水平很差,所以以后还是请各位高手多多指点哈~
- 刚开始Windows Mobile的开发,请大家多多关照
刚开始学习Windows Mobile的开发,现在正在学习WML和WAP的网站制作,请大家多多关照. 转载于:https://www.cnblogs.com/czha2002/archive/2005 ...
- 北工大2009计算机系新生李洋,强势围观!初次入校,请您多多关照……
原标题:强势围观!初次入校,请您多多关照-- 有这样一个人 在你收到录取通知书后 就开始了迎接你的工作 有这样一个人 关注着你生活中的点点滴滴 有这样一个人 在你顶着烈日军训时会心疼地注视着你 Ta是 ...
- 2014年博客之星评选,请大家多多支持
我参加 了CSDN2014 博客之星大赛,请大家多多支持投我一票,谢谢. 参选理由:在技术的道路上,要学会学习和分享,不停追求,不停进步,直至完美.... 投票网址: http://vote.blog ...
- 新人初学python在运行脚本时报错了,不知道如何处理还请各位高人指点,拜托拜托
新人初学python在运行脚本时报错了,不知道如何处理还请各位高人指点,拜托拜托 下面是报错: E + where False = <bound method LogIn.view_userna ...
- Devexpress学习篇(请大家多多指教)
源代码下载 学习Devexpress有一个多月了,一直没也什么实质的进展和收获,现在遇到问题了,请大家多多指教. 问题一:(如图所示) 1.在xaf中是否可以添加如下控件?(图中为ps上去的 ...
- Hello! 大家好!我叫郑彬,说实话,我只是知道用点office,不太会计算机的,请大家多多指教噢!
Hello! 大家好! 我叫郑彬,说实话, 我只是知道用点office,不太会计算机的,请大家多多指教噢!
- 我作的一个单元测试框架程序,请大家多多指教.
我作的一个单元测试框架程序,请大家多多指教. http://cosoft.org.cn/projects/verysimpleunit/ 作作广告,呵呵
- 第一次写博客,请大家多多包涵...
本人是经济管理学院的学生,有幸加入计算机这个大家庭.参加"夏令营"班,经过几天的学习,现在已经能够初步地做一些小东西,感到很欣喜,也越发激起了我的学习兴趣. 在这几天的学习中,有过 ...
最新文章
- 从贫困的“问题少年”到计算机博士,最后成为商界泰斗,“创业之神”吉姆•克拉克是如何走向封神之路的?...
- 说一下你对多态的理解?_掌握了多态的特性,写英雄联盟的代码更少啦!
- Java开发中业务层入参校验详细解析
- 我XXXX!!!够了!!!从github拉到dockerhub,再用daocloud加速下载
- keras从入门到放弃(十一)电影评价预测
- JAVA Web Servlet中的异步处理 (1) -- Servlet3.0中的Async支持
- java uuid静态方法_Java UUID toString()方法与示例
- html ie 版本设置密码,如何给IE浏览器设置一个密码的详细图文步骤
- anaconda安装python包_Anaconda:安装或更新 Python 第三方包
- c语言从指定窗口截图,c++ 屏幕截图指定窗口句柄后台截图返回位图句柄
- Swift - 05 - 数值型字面量
- 计算机网络误区——为什么我的PING包发不出去?
- java中class文件反编译_java中的.class文件反编译
- visual studio多工程项目管理
- web应用微信扫码绑定用户
- 已解决SyntaxError:positional argument follows keyword argument
- win10系统服务器怎样设置密码,win10系统的电脑如何给普通文件夹设置密码
- FinalShell Mac OS版安装
- ubuntu 18.04 下安装微信
- 吃透Java并发:AQS结构详解及其CLH变种、CLH、MCS
热门文章
- Jiss Wang:Whitecoin白币新生态体系中的落地应用
- 9.2 使用导航窗格管理数据库对象
- https+webservice
- 全球及中国户外餐具行业竞争格局及发展前景规模预测报告2021-2027年版
- 上海哪里有学陈氏太极拳?
- iText7高级教程之html2pdf——1.从Hello HTML开始
- SQLHelper助手类【代码】
- smb测速工具_MyCloud samba3 的传输速度为啥是 nfs 性能的一倍?那里操作有问题?...
- 栋感光波-冲刺日志(第4次)
- 软件测试——10款目前最热门的测试工具,总有一款适合你