一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 灰太狼8888
收起左侧

瓦斯报警器研究贴

  [复制链接]
发表于 2012-3-5 17:13 | 显示全部楼层
我想把这个报警器用在厨房里做液化气泄漏报警器,不知道可以不可以?
旁听生 发表于 2012-3-4 21:04 https://www.yleee.com.cn/images/common/back.gif


这个应该可以,我试验过,打开液化气后,将这个报警器靠近后,读数会迅速上升,达到1.00后会报警。
发表于 2012-3-5 18:34 | 显示全部楼层
用了那个编译器, flash里面放数组,最多的成功编译的显示为60%左右的占用量,再多加几行,就报错了。  ...
litchiate 发表于 2012-3-5 00:51 https://www.yleee.com.cn/images/common/back.gif


编译信息里有两个项啊,比如下面的:
0 1 mikroCPIC1618.exe -MSF -DBG -pP16F914 -DL -O11111114 -fo4 -N"D:\mikroC PRO for PIC\projects\VolMteter\VolMeter.mcppi" -SP"D:\mikroC PRO for PIC\defs\" -SP"D:\mikroC PRO for PIC\Uses\P16\" -SP"D:\mikroC PRO for PIC\projects\VolMteter\" "VolMeter.c" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_ADC_A_B.mcl"  
0 1139 Available RAM: 240 [bytes], Available ROM: 4096 [bytes]  
0 126 All files Preprocessed in 172 ms  
0 122 Compilation Started VolMeter.c
8 1163 Variable 'i' has been declared, but not used VolMeter.c
52 123 Compiled Successfully VolMeter.c
9 1164 Variable 'a' has been eliminated by optimizer VolMeter.c
0 127 All files Compiled in 109 ms  
0 1144 Used RAM (bytes): 22 (9%)  Free RAM (bytes): 218 (91%) Used RAM (bytes): 22 (9%)  Free RAM (bytes): 218 (91%)
0 1144 Used ROM (program words): 293 (7%)  Free ROM (program words): 3803 (93%) Used ROM (program words): 293 (7%)  Free ROM (program words): 3803 (93%)
0 125 Project Linked Successfully VolMeter.mcppi
0 128 Linked in 203 ms  
0 129 Project 'VolMeter.mcppi' completed: 515 ms  
0 103 Finished successfully: 05 三月 2012, 18:29:41 VolMeter.mcppi

您的是哪项超了?有的情况是ROM并没有超,而是由于使用数组,RAM不够用了。
发表于 2012-3-5 19:00 | 显示全部楼层
等会上个图

加了关键字 const 或者code ,应该是放flash了,

去掉那两个关键词,更小的数组时就报错了。
发表于 2012-3-5 22:45 | 显示全部楼层
本帖最后由 litchiate 于 2012-3-5 23:16 编辑
编译信息里有两个项啊,比如下面的:
0 1 mikroCPIC1618.exe -MSF -DBG -pP16F914 -DL -O11111114 -fo ...
fat 发表于 2012-3-5 18:34 http://223.4.85.240/images/common/back.gif


0 1144 Used RAM (bytes): 9 (4%)  Free RAM (bytes): 231 (96%) Used RAM (bytes): 9 (4%)  Free RAM (bytes): 231 (96%)
0 1144 Used ROM (program words): 2360 (58%)  Free ROM (program words): 1736 (42%) Used ROM (program words): 2360 (58%)  Free ROM (program words): 1736 (42%)


再加上一行就是 2 342 There is not enough ROM space data_table led_flash.c

传个文件。  网络渣,明天穿
发表于 2012-3-5 23:18 | 显示全部楼层
0 1144 Used RAM (bytes): 9 (4%)  Free RAM (bytes): 231 (96%) Used RAM (bytes): 9 (4%)  Free RAM  ...
litchiate 发表于 2012-3-5 22:45 https://www.yleee.com.cn/images/common/back.gif

RAM有富余,代码空间用了58%,但不至于“再加几行就超了”吧,是不是您加的这几行引用了程序其它部分没有使用过的函数?如果是使用了系统提供的函数,在链接时软件还会将实现该函数的库文件链接进来,这样体积就会增大很多,也许是您添加了一个很大的库??
发表于 2012-3-6 08:30 | 显示全部楼层
等会上个图

加了关键字 const 或者code ,应该是放flash了,

去掉那两个关键词,更小的数组时就报错了 ...
litchiate 发表于 2012-3-5 19:00 https://www.yleee.com.cn/images/common/back.gif



             昨天用MPLAB IDE 编写电压表程序时,发现用了实型数据“float"。编译器同样频频出错!


PIC16F914比较有个性。可参阅手册附录B〈从其它PICmicro器件移植》
发表于 2012-3-6 08:51 | 显示全部楼层
本帖最后由 倪大德 于 2012-3-6 08:53 编辑

初步写了个0-50V电压表程序。   (3。5元=50v的led电压表也不错)

    914.GIF 9142.GIF


          一。AD选用通道1。20引脚,基准电压按原板。

          二。准备用现有的键盘进行电压校正。(这部分还没完成)



          为了能物尽其用,不知谁有时间能画出此板全图!谢先!
发表于 2012-3-6 08:58 | 显示全部楼层
当然能写明现板各引脚的连接也行!
发表于 2012-3-6 09:23 | 显示全部楼层
初步写了个0-50V电压表程序。   (3。5元=50v的led电压表也不错)

   


          一。AD选用通道1 ...
倪大德 发表于 2012-3-6 08:51 https://www.yleee.com.cn/images/common/back.gif


谢谢倪工,图太小看不清啊,呵呵,我也正在改,这几天有别的事耽搁了,用VDD作基准的话,我准备割PCB给它加上5V稳压供电,原来是锂电供电的,不知有无稳压(板上两个SOT-23元件上有防水胶看不清型号),5V供电还有个好处是算电压不必做浮点了,直接将AD读数移位加减,加个判断定位小数点即可,反正只是10bit的分辨率,只是感觉有点浪费(呵呵,PIC的型号细分,配置高的芯片用不完资源总让人觉得是浪费
发表于 2012-3-6 09:25 | 显示全部楼层
本帖最后由 litchiate 于 2012-3-6 09:38 编辑
RAM有富余,代码空间用了58%,但不至于“再加几行就超了”吧,是不是您加的这几行引用了程序其它部分没有 ...
fat 发表于 2012-3-5 23:18 http://223.4.85.240/images/common/back.gif


这次试了下 ram 见以下程序。

unsigned char table1[80];
unsigned char table2[80];
unsigned char table3[77];
void main() {
      table1[79]=0xff;
      table2[79]=0x0f;
      table3[76]=0;
}

编译之后ram 使用 240 byte ,剩余0%,

但是单个数组超过80就会报错,这是为何呢。

-------------------------------------------------

再一起试了下flash, 最大数组不能超过2048,

unsigned char table1[80];
unsigned char table2[80];
unsigned char table3[77];

code unsigned char flash1[2048]={0};
code unsigned char flash2[2037]={0};

void main() {
unsigned char temp;

      table1[0]=0;
      table2[0]=0;
      table3[0]=0;
      
      temp = flash1[0];
      temp = flash2[0];
}

以上程序编译后, falsh占用4093,剩余0%, ram占用240,剩余0%,

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-15 18:02 , Processed in 0.054845 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表