arduino mega2560如何使用额外的引脚

像这里写的,arduino mega并没有使用完所有的ATmega2560的引脚

arduino mega2560如何使用额外的引脚_第1张图片

然后因为某些原因自己做了一个板子里面不小心用了不是arduino的引脚,所以要更改一些文件。。。

分析过程

在arduino里面搜索void digitalWrite发现有在/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores里面的wiring_digital.c有这个函数的内容,里面的pinmode和digitalread调用了这些函数:

    digitalPinToBitMask
    digitalPinToPort
    portModeRegister
    portOutputRegister

    digitalPinToTimer
    digitalPinToBitMask
    digitalPinToPort
    portInputRegister

搜索发现这些函数在arduino.h这个文件里面定义。调用了这些函数

    digital_pin_to_bit_mask_PGM
    digital_pin_to_port_PGM
    port_to_mode_PGM
    port_to_output_PGM

    digital_pin_to_timer_PGM
    digital_pin_to_bit_mask_PGM
    digital_pin_to_port_PGM
    port_to_input_PGM

pins_arduino.h里面有这些函数的定义,所以应该是改pins_arduino这个文件。搜索arduino里面的文件的时候发现每个板子有自己的一个文件夹,下面有一个对应的这个文件。

资料

这篇文章里面也提到了类似的内容
http://forum.arduino.cc/index.php?topic=114536.0

增加开发板类型

需要让arduino把我们写的那个pins_arduion.h读出来。
http://stackoverflow.com/questions/21417521/arduino-use-all-ports-atmega2560

总的来说就是修改boards.txt这个文件,mega的复制出来,头都改成自己的名字,其中有一行,改成自己那个pins_arduino.h对应的文件夹名字

mega.build.variant=xxxxxxxx

我照着上面写的做了,然而并没有什么用。。。







然后突然就好了。。我并不知道为什么,神秘的东方力量。。。

你可能感兴趣的:(arduino mega2560如何使用额外的引脚)