极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: nengcai0313

我用Mega16 DIY的Arduino板,板子已经搞好,程序还有问题。

[复制链接]
发表于 2012-10-8 19:47:44 | 显示全部楼层
nengcai0313 发表于 2012-10-6 15:38
晶振一定要选12M的。我一直都在用。

我手头有一根线是这一款:http://item.taobao.com/item.htm? ... 3&id=4258954610

可以刷boot以及程序吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-8 23:25:33 | 显示全部楼层
wasdpkj 发表于 2012-10-8 19:31
感谢!熔丝位按照你发的网址没问题吗?另外,mega16的isp烧程序大概的方法能否分享一下,感谢

这个周末我不忙的话,我来写一个教程吧,图上的熔丝位有点问题。我锁了一个片子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-8 23:27:07 | 显示全部楼层
wasdpkj 发表于 2012-10-8 19:47
我手头有一根线是这一款:http://item.taobao.com/item.htm?spm=2013.1.0.112.589a33&id=4258954610

可 ...

可以,我用的就是这种。
回复 支持 反对

使用道具 举报

发表于 2012-10-8 23:45:26 | 显示全部楼层
本帖最后由 wasdpkj 于 2012-10-8 23:46 编辑

我试了你的19楼道boot,拷入hardware文件夹,用arduino-1.0.1,普通编译没问题,也实现了功能
但定义模拟端口,比如A0,就会报错
sketch_oct08b:11: error: 'A0' was not declared in this scope
这怎么解决?
回复 支持 反对

使用道具 举报

发表于 2012-10-9 00:08:10 | 显示全部楼层
wasdpkj 发表于 2012-10-8 23:45
我试了你的19楼道boot,拷入hardware文件夹,用arduino-1.0.1,普通编译没问题,也实现了功能
但定义模拟端 ...

接着ls,我看到另一位用16做arduino的朋友(http://www.subtours.com/ralph/theory/atmega16witharduino.html),采用自定义引脚的方式:

http://www.subtours.com/ralph/do ... tmega16_arduino.pdf

,您19楼分享的压缩包,我看了相应的引脚配置,好像是调用了leonardo的,这不是这个造成模拟角编译出错呢?

先睡了,明天再等答复,非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-9 00:16:16 | 显示全部楼层


不要写A0,直接对应图上的写1 2 3什么的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2012-10-9 07:24:43 | 显示全部楼层
nengcai0313 发表于 2012-10-9 00:16
不要写A0,直接对应图上的写1 2 3什么的。

我昨天也在一个一个试试引脚呢,但这样可以实现模拟端口吗?比如温度监控,可以移植吗?
另外,哪几个口有pwm功能?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-9 12:44:02 | 显示全部楼层

RE: 我用Mega16 DIY的Arduino板,板子已经搞好,程序还有问题。

wasdpkj 发表于 2012-10-9 07:24
我昨天也在一个一个试试引脚呢,但这样可以实现模拟端口吗?比如温度监控,可以移植吗?
另外,哪几个口 ...

带oc的口有pwm输出,建议你看看mega16的引脚说明。
回复 支持 反对

使用道具 举报

发表于 2012-10-9 13:02:49 | 显示全部楼层
nengcai0313 发表于 2012-10-9 12:44
带oc的口有pwm输出,建议你看看mega16的引脚说明。

恩 谢谢,那模拟端口呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-9 21:18:07 | 显示全部楼层
wasdpkj 发表于 2012-10-9 13:02
恩 谢谢,那模拟端口呢?

模拟输入是0-7
回复 支持 反对

使用道具 举报

发表于 2012-10-10 12:04:32 | 显示全部楼层
nengcai0313 发表于 2012-10-9 21:18
模拟输入是0-7

太谢谢你了,您定义这个引脚编号是不是要按照bootloaders定义才能正常工作?
回复 支持 反对

使用道具 举报

发表于 2012-10-11 00:36:19 | 显示全部楼层
本帖最后由 wasdpkj 于 2012-10-11 16:12 编辑

今天编译遇到了问题,程序是一个简单的LM35检测温度输出到LCD1602显示的:



  1. #include <LiquidCrystal.h>   //调用arduino自带LiquidCrystal库

  2. LiquidCrystal lcd(13, 12, 8, 9, 10, 11);//设置接口

  3. float tem10 = 0;    //温度-换算
  4. long n=0;                 //设置n为长整数变量

  5. /*=================0-初始化===================*/

  6. void setup()

  7.     {

  8.     analogReference(INTERNAL);   //调用板载1.1V基准源

  9.     lcd.begin(16, 2);         //初始化LCD
  10.     lcd.print("  =====PKJ=====  ");         //使屏幕显示文字
  11.     delay(1000); //延时

  12.     }


  13. /*==================0-函数====================*/

  14. void loop()

  15.     {

  16.     /*==================1-值=======================*/

  17.     n = analogRead(0);         //读取A0口的电压值
  18.    
  19.     delay(50);         //控制刷新速度

  20.     tem10 = (n * (1.1 / 1024.0*1000));         //使用浮点数存储温度数据

  21.     float  tem=tem10/10;         //温度-实际
  22.    
  23.     /*=================2-显示=====================*/

  24.         {
  25.         lcd.clear(); //清屏
  26.         lcd.print("NowTem:");                         //使屏幕显示文字
  27.         lcd.setCursor(8, 0) ;                         //设置光标位置
  28.         lcd.print((long) tem10 / 10);   //显示温度整数位
  29.         lcd.print(".");                                    //显示小数点
  30.         lcd.print( (long)tem10 % 10);         //显示温度小数点后一位
  31.         lcd.print((char)223);                         //显示o符号
  32.         lcd.print("C");                                 //显示字母C

  33.         delay(60);                             //刷新速度
  34.         
  35.         }


  36.         }
复制代码


board选用mega16编译就会报错(选其他就没问题):

In file included from sketch_oct11a.cpp:2:
D:\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal.h:82: error: conflicting return type specified for 'virtual size_t LiquidCrystal::write(uint8_t)'
D:\arduino-1.0.1\hardware\M2Arduino\cores\M2Arduino/Print.h:40: error:   overriding 'virtual void Print::write(uint8_t)'


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

换了0022版本ide编译到是没问题了,可1602显示乱码。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-12 14:40:22 | 显示全部楼层
wasdpkj 发表于 2012-10-11 00:36
今天编译遇到了问题,程序是一个简单的LM35检测温度输出到LCD1602显示的:

很多的库都是有问题的,要自己改。
回复 支持 反对

使用道具 举报

发表于 2012-10-12 19:36:35 | 显示全部楼层
nengcai0313 发表于 2012-10-12 14:40
很多的库都是有问题的,要自己改。

确实不会改
回复 支持 反对

使用道具 举报

发表于 2012-10-14 14:34:05 | 显示全部楼层
wasdpkj 发表于 2012-10-11 00:36
今天编译遇到了问题,程序是一个简单的LM35检测温度输出到LCD1602显示的:

我的atmega16a和你一样,控制IO LED 没问题,遇到库函数调用就报错,错误信息也一样(换一个板子编译就通过),不知到是不是指令集的问题,至今没有搞定 。

在官方论坛问过这个问题,有回复说是建议我升级m2arduino的core到最新版本,可是没地方能找到最新的atmega16版本。我那几块MEGA16还放那里落灰呢。楼主找到解决方案告诉我声啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 14:08 , Processed in 0.046053 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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