PIC单片机之注意事项

发布者:SerendipityLove最新更新时间:2018-08-04 来源: eefocus关键字:PIC单片机  注意事项 手机看文章 扫描二维码
随时随地手机看文章

MPLAB IDE v8.92  只能支持英文目录,所以一般而言是把相应的工程拷到D盘中,然后打开编译,最后如果想要保存工程,应该拷回想要保存的位置

当在中文目录中会出现“找不到指定路径”的错误,如下:









关于超大数组问题:

本实验用的编译器是xc16-gcc.exe,集成开发环境是MPLAB IDE v8.92,当前的编译器配置如下:

-g -Wall -mlarge-code -mlarge-data -Os -fno-ivopts

如下图:

其中这里有一个超大的数组:

这时候编译会有这样的一个错误:

从提示可以知道,这是一个数据超出的错误,但是这里是超出了数据段,而不是说超出了芯片的flash,我们可以这样查看是否超过了flash,去掉这个数组编译看看占用了多少flash,如下:

也就是说占用的flash空间是:81459+7674=89133,但是单片机的flash却是这样的:

所以即是加上数组的35408也是124541并没有超出flash,所以这个错误完全是编译器的问题,从网上收到这个文章:

http://electronics.stackexchange.com/questions/25878/epmp-on-pic24fj128da210

其中有关键的提示:

所以这里增加-mlarge-arrays这个编译命令,如下:

这时候的编译结果如下所示:

从网上找到这个办法:

http://www.microchip.com/forums/m621857.aspx

其中的关键的地方是这样的:

在文件中修改如下:

这时候编译结果如下:

编译成功了,要说明的是,如果数组再增大到一定的程度,如下

这时候又会出现新的错误,本人决定去弄一张更小的图片吧,不要那么大的图片了,所以这个错误将不再深究,错误如下:

从这里看,或许真的是因为溢出flash了

注意:上面只是说明了怎么装数据,并没有说明怎么使用数据,下面的函数给出了一个怎么使用这个数组数据的说明:

void show_photo(unsigned short int StartX, unsigned short int StartY, __prog__ unsigned char *BmpAddress)
{
    __prog__ HEADCOLOR *BmpHeadr;
    unsigned short int Width, Height,Column,row;
    __prog__ unsigned char *BmpData;
    BmpHeadr = (__prog__ HEADCOLOR *)BmpAddress;
    Width = BmpHeadr->w;    //177
    Height = BmpHeadr->h;   //100
    BmpData = (__prog__ unsigned char *)(BmpAddress + sizeof(HEADCOLOR));    //sizeof表示该数组内存的多少 单位是字节 算出像素数据在数组中的偏移
    LCD_SetPos(StartX,StartX+Width-1,StartY,StartY+Height-1);
    for(Column=0;Column    {
        for(row=0;row        {
            Write_Data(*(__prog__ unsigned short int *)BmpData);
            BmpData +=2;
        }
    }
}

一定要注意这时候使用的是__prog__类型,而不是const类型

下面是这个函数的调用方法:

show_photo(0,0,gImage_100X177);

这个数组的定义是这样的:

__prog__ unsigned char gImage_100X177[35408] __attribute__((space(prog)))= { 0X00,0X10,0XB1,0X00,0X64,0X00,0X01,0X1B,
0XDD,0XC6,0XDD,0XC6,0XFE,0XC6,0XFD,0XCE,0XFD,0XCE,0XFE,0XCE,0X1E,0XCF,0X1E,0XCF,
0X1E,0XCF,0X1E,0XCF,0X1E,0XC7,0X1E,0XCF,0X1E,0XCF,0X3E,0XD7,0X3E,0XD7,0X3E,0XD7,
0X3E,0XD7,0X3E,0XD7,0X3E,0XD7,0X3E,0XD7,0X3E,0XD7,0X3E,0XCF,0X3E,0XC7,0X1E,0XC7,
0X1E,0XC7,0X1E,0XC7,0X1E,0XC7,0X3E,0XC7,0X3E,0XC7,0X3E,0XCF,0X3E,0XCF,0X5E,0XCF,
0X5F,0XCF,0X3E,0XCF,0X3E,0XCF,0X3E,0XCF,0X3F,0XCF,0X3E,0XC7,0X3F,0XCF,0X3F,0XCF,
0X3F,0XC7,0X5F,0XCF,0X5F,0XCF,0X5F,0XCF,0X5E,0XCF,0X5F,0XCF,0X5F,0XCF,0X5F,0XCF,



现在我们可以看看实验效果了:



下面上传本实验的程序,这个程序的主芯片是PIC24FJ256DA210,液晶型号是S663DE,模块型号是深圳爱维信公司的IGF240320MC28N01

代码用好压软件分成了两份压缩文件:

http://download.csdn.net/detail/chengdong1314/9552679

http://download.csdn.net/detail/chengdong1314/9552680


下面是取模软件和图片:

http://download.csdn.net/detail/chengdong1314/9552683


关键字:PIC单片机  注意事项 引用地址:PIC单片机之注意事项

上一篇:PIC单片机与51单片机的区别
下一篇:关于PIC单片机18系列超低功耗软件编程的关键点

推荐阅读最新更新时间:2024-03-16 16:10

ZC-ADK中PIC单片机的CONGFIG说明
CONFIG又称为熔丝位,可以通过配置熔丝位来配置单片机内部的功能,比如晶振时钟、看门狗、JTAG、掉电检测与代码保护等,如果对这些设置不了解的话,建议直接复制粘贴。 在PIC单片机中,我们既可以通过在代码中添加CONFIG代码来设置熔丝位,也可以通过在MPLAB IDE集成开发环境中通过界面进行配置。 界面配置方法: 点击Configure Select Device选择相应的器件,这里我们选择PIC24FJ64GB004,如图1、图2所示: 图1 图2 选择好器件后,点击Configure Configuration Bits,进入图3界面,取消掉Configration Bits set in code,这样
[单片机]
ZC-ADK中<font color='red'>PIC单片机</font>的CONGFIG说明
几种不同位移传感器的使用方法及注意事项
前言 随着传感器应用领域的不断扩大,人们对其的需求也在逐渐加大,与此同时,对传感器的自身质量与性能就有了更高的要求,尤其是作为精确测试的位移传感器(什么是位移传感器)。对于应用位移传感器来做研发的朋友来说,了解位移传感器使用方法及注意事项是十分必要的。在了解位移传感器的使用方法之前,小编先对位移传感器的主要特性参数作简单介绍(直线位移传感器)。 位移传感器的主要特性参数(位移传感器原理) 标称阻值:电位器上面所标示的阻值。 允许误差:标称阻值与实际阻值的差值跟标称阻值之比的百分数称阻值偏差,它表示电位器的精度。允许误差一般只要在 ±20%以内就符合要求,因为一般位移传感器是以分压的方式来使用,具体电阻的大小对传感器
[嵌入式]
ZKS型单相不可逆直流电机调速器使用时注意事项
单相不可逆直流电机调速器在使用时需要注意以下几点: 1. 使用前请仔细参阅说明书 或 网上查看相关资料 2. 输入AC220V工频电源,直流输出为电枢DC0~180V,磁场DC200V; 3. 输入二相380V加零线,直流输出DC0~340V,磁场DC200V或340V; 4. 该装置分为 数显接口 与 指针接口 两种,购买前请联系客服说明需求; 5. 装置有 电压反馈 和 测速信号反馈,购买前请请联系客服说明需求; 6.ZKS型单相直流调速器分为多种规格,例如:ZKS-0.3KW普通机芯、隔离机芯,ZKS-0.5KW仪表指针、仪表数显、模块机芯;ZKS-1.1KW仪表数显、仪表指针、模块机型等,详情参见产品表。 产
[嵌入式]
PIC单片机驱动LCD12864液晶显示闪动字体程序
/********************************************************************** *** 功能:12864LCD显示 显示闪动字体,各位同学可以自己修改。 *** 实验内容:0x81 0x90 0x88 0x98 分别是LCD四行的行首地址,我们操作LCD现实的字符就是分别放在这里面的 *** 开发板连接方法: 接上有字库LCD12864 注意调节对比度,LCD12864工作电流较大,请用外接电源供电。 *************************************************************************************
[单片机]
pic单片机红外夜视仪设计
随着汽车市场的快速发展和安防意识的日益强化,人们对汽车安全保障技术的要求越来越高,而现有汽车照明系统在雪夜、雪天或大雾等能见度较低情况下视距不远、效果不佳的弊病成为汽车行驶的安全隐患之一。更严重的是在夜晚行车时,驾驶员通常会被对方车辆的灯光干扰出现盲区,容易发生车祸。夜视系统却可以在黑暗中帮助驾驶员导航,使驾驶员在有灯光和黑暗两种情况下都能看清驾驶环境。因此开发一种结构简单、性能稳定、可靠性好、适用性强的汽车红外夜视系统,具有重要的市场应用前景。 该部分核心是PIC16F877A单片机。它是由美国Microchip公司生产的8位单片机,具有独特的RISC结构,数据总线和指令总线分离的哈佛总线结构。它连接各个终端设备,响应主控机
[单片机]
<font color='red'>pic单片机</font>红外夜视仪设计
数字压力表使用时的注意事项以及特点
  数字压力表是一种常用的 压力仪表 ,在多个行业中都有一定的应用。用户在使用数字压力表的时候有很多得到问题都是需要注意的,如果不注意是很容易造成一定的损坏的。今天小编来为大家具体介绍一下数字压力表使用时的注意事项以及特点吧,希望可以帮助到大家。   数字压力表使用时注意事项   1、数字压力表有足够过载能力,但切勿严重过载,否则会造成传感器的损坏,导致压力表无法使用。   2、数字压力表传感器属于高精密产品,硅膜片表面切勿与固体碰撞,否则会损坏传感器。   3、没有专业的检测技能和专用的检测设备,切勿打开表盖进行检修,更不允许调整内部结构或更换材料,否则无法保证 仪表 的可靠性。   4、勿让电烙
[测试测量]
数字万用表的使用方法和注意事项
(1)交、直流电流的测量根据测量电流的大小选择适当的电流测量量程和红表笔的插入孔,测量直流时,红表笔接触电压高一端,黑表笔接触电压低的一端,正向电流从红表笔流入数字万用表,再从黑表笔流出,当要测量的电流大小不清楚的时候,先用最大的量程来测量,然后再逐渐减小量程来精确测量。   (2) 交、直流电压的测量   红表笔插入 V/ 插孔中,根据电压的大小选择适当的电压测量量程,黑表笔接触电路 地 端,红表笔接触电路中待测点。特别要注意,数字万用表测量交流电压的频率很低(45~500Hz),中高频率信号的电压幅度应采用交流毫伏表来测量。   (3) 电阻的测量   红表笔插入 V/ 插孔中,根据电阻的大小选择适当的电阻测量量
[测试测量]
Microchip向中国电表制造商林洋电子交付第50亿颗PIC单片机
全球领先的单片机和模拟半导体供应商 ——Microchip Technology Inc. (美国微芯科技公司)近日将其第 50 亿颗 PIC 单片机交付给中国电表制造商江苏林洋电子有限公司。 Microchip 于去年 9 月交付了第 40 亿颗单片机。仅相隔一年即再传捷报,交付了第 50 亿颗型号为 PIC18LF8720-I/PT 的单片机。    此举足以证明 Microchip 的 PIC 单片机一直深受业界青睐,成为嵌入式控制设计中首选的高性能、高成本效益解决方案,特别是在发展迅猛的中国市场不断绽放异彩。   Microchip
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved