E-puck机器人-小白学习笔记(二)代码浅解读
文件说明
e_epuck_ports.h是所有端口以及端口方向设置的宏定义
e_init_port.c是所有端口的初始化设置和端口方向的设置
时钟配置和看门狗配置
点击运行Configure——>Configuration Bits,即可在环境下方调出配置窗口,Option下面的定义可以修改
FOSC用于配置系统时钟,FWDT用于看门狗的配置,如果你想使用外部晶振、内部进行16倍频,就选择 XT_PLL16即可,如果是内部时钟、4倍频,就在选项中选择FRC_PLL4,同理,看门狗的开启和关闭,以及开启后的设置也可以通过FWDT来配置,这里我们选择关闭看门狗,只需将WDT选项选择为WDT_OFF即可,注意,这里选择好之后,必须点击输出生成源代码,会自动生成源码,生成的源码拷贝到你的项目文件中才有效。
#include “p30f6014A.h” //包含头文件_FOSC(CSW_FSCM_OFF & XT_PLL16); //配置时钟_FWDT(WDT_OFF); //关闭看门狗
假设使用的外部晶振为5Mhz,系统指令周期的计算方法为:
5M*16/4=20MIPS
16为16倍频,每执行一条指令要4个时钟周期,因此要除四,就得到了实际的系统时钟。
IO端口的配置
IO端口使用很简单,和51相比只是多了一个方向控制,在使用端口之前 ,先设置好方向。
#define LED0 _LATA6
#define LED1 _LATA7
#define LED2 _LATA9
#define LED3 _LATA12
#define LED4 _LATA10
#define LED5 _LATA13
#define LED6 _LATA14
#define LED7 _LATA15#define LED0_DIR _TRISA6
#define LED1_DIR _TRISA7
#define LED2_DIR _TRISA9
#define LED3_DIR _TRISA12
#define LED4_DIR _TRISA10
#define LED5_DIR _TRISA13
#define LED6_DIR _TRISA14
#define LED7_DIR _TRISA15
#define LED0_DIR _TRISA6 是端口方向的宏定义,声明了LED0_DIR 表示端口A6的方向。置1为输入,置0为输出
#define LED0 _LATA6
LATAbits是控制端口实际输出高低电平的寄存器位,将该寄存器的LATA10位进行置1置0操作,即可输出高、低电平。
值得注意的是,当进行读引脚操作时,要读PORTAbits寄存器,而不是LATAbits寄存器。
LED0 = 0;LED1 = 0;LED2 = 0;LED3 = 0;LED4 = 0;LED5 = 0;LED6 = 0;LED7 = 0;LED0_DIR = OUTPUT_PIN;LED1_DIR = OUTPUT_PIN;LED2_DIR = OUTPUT_PIN;LED3_DIR = OUTPUT_PIN;LED4_DIR = OUTPUT_PIN;LED5_DIR = OUTPUT_PIN;LED6_DIR = OUTPUT_PIN;LED7_DIR = OUTPUT_PIN;
三个麦克风,八个红外,以及陀螺仪加速度计的三个轴都使用了AD
如何给工程的多种文件分类
如果多个开发文件。就要添加相应的文件夹去分类了
建立两个文件夹,Obj,User。
Obj用来存储编译的中间过程文件,User用来存自己使用的文件。
Project->Build Options->Project
如果希望工程的文件分门别类,就给中间过程文件和自己的文件指定好位置,如下:
InterMediary Directory:Obj(用来存储编译的中间过程文件)
Assembler Include Search Path:user(User用来存自己使用的文件)
E-puck机器人-小白学习笔记(二)代码浅解读相关推荐
- header python 环境信息_python获取网页header头部信息(python小白学习笔记二)
方法一:代码查看 通过python获取网页的链接url,返回码,以及相关的信息 #对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 import urllib.request ur ...
- E-puck机器人-小白学习笔记(一)准备工作
目录 E-puck机器人 一.技术参数 dsPIC 30F6014A 二.软件 e-puck-library-master文件夹 BasicDemos.zip 三.编译 MPLAB是什么? pic单片 ...
- Swoft2.x 小白学习笔记 (二) --- mysql、redis
介绍swoft中 1.mysql. 2.Redis 一.mysql使用: 1.配置,在 app\bean.php文件中 'db' => ['class' => Database::clas ...
- 即时通讯学习笔记003---Tigase代码框架解读
JAVA技术交流QQ群:170933152 在java下实现的xmpp开源实现,除了openfire外,tigase是另一个牛逼的项目. 实际的实验室压力下,50万人同时在线的单机,tigase的gc ...
- GEE(Google Earth Engine) 最基础代码学习笔记二 —— JavaScript 语言
GEE(Google Earth Engine) 学习笔记二 Javascript 语言 1. 注释 print('Hello World!'); 如果要注释,则在代码前面加//,比如: // pri ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- ASP.NET MVC 2 学习笔记二: 表单的灵活提交
ASP.NET MVC 2 学习笔记二: 表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...
最新文章
- 用 MySQL 实现分布式锁,你听过吗?
- Oracle中“不等于”的使用
- Windows下的git配置
- 寄存器位读写,结构体位域定义,位域操作,位操作
- Linux复习-进程及其管理
- Oracle 10g 数据库连接出现The Network Adapter could not establish the connection解决办法
- linux加密狗复制克隆教程,圣天狗SentinelDog
- flashpaper
- winxp下用ssh控制 linux 服务器
- 【腾讯位置服务】使用地点云实现企业官网中的门店地图
- 多测师肖sir_高级金牌讲师_面试题
- python爬虫点触验证码的识别思路(图片版)
- nodeJS学习笔记-重点难点
- 【科学的尽头是神学】祖师爷坐镇
- HTML5的内容模型及页面结构图
- python数据可视化案例 淘宝粽子_Python分析淘宝月饼销售数据,哪种最受欢迎?排第一的你想不到...
- 本地浏览器远程访问服务器tensorboard(MobaXterm)
- 入坑QT3之安装之后的系统环境配置和程序打包过程------主要是程序打包之后出现各种文件缺失问题
- 这十年,有多少人是从周杰伦到陈奕迅?
- 图扑软件入局工业元宇宙,加速部署数字孪生新生态
热门文章
- OpenGL PBO学习
- 在修路的时候或者建筑工地,为什么要有人支着一个三脚架测量,其实三脚架上面还有仪器的,通常是四种:水准仪、经纬仪、全站仪、GPS。(前三种较常见)可以理解为分别测:高度差、角度、距离加角度、地理坐标
- DCM4CHE实现DICOM的C-STORE --STORESCP
- Python-Django基本笔记
- 人力资源三支柱是什么?人力资源管理如何运用HR三支柱模型
- 解放运维的双手,谈自动化运维管理平台设计
- Postgresql的Listen-Notify机制
- Android相机资源占用,为保护用户隐私Android 11调整相机选项 APP调用相机时只可使用默认相机...
- uni-app用uni.chooseImage API调用相机或从相册中选择图片
- AndroidStudio界面跳转