広告
*アセンブラを入れる [#ubf304bf]
例えば何もしない「NOP」を入れる場合。
__asm__("nop\n\t");
いくつか連続した命令を実行するとき
__asm__("nop\n\t""nop\n\t");
**参考リンク [#m9e37e17]
-[[AVR-GCCインラインアセンブラ便利帳:http://ww2.tiki.ne.jp/~maro/AVR/programing/AvrGccInLineAsm.html]]
*デジタルIOを直接たたく [#m8de49f2]
digitalWriteが遅いので、高速でON-OFFしたいとき。~
ポートBのHigh-Lowを設定
PORTB = B00000011;
この時、PB0とPB1がHighになる。
*サーボモータを動かす。 [#k8ab0b30]
-サーボモータ用のライブラリを使うと簡単。Exampleもあり(servo)~
--[[建築発明工作ゼミ2008:http://kousaku-kousaku.blogspot.jp/2008/06/arduino.html]]
-モータは大きな電流を使うので、サーボモータを動かすと誤動作する場合あり。
--USBからの電源だけでは苦しい。
**サーボモータの駆動とシリアル通信を行う場合 [#qf0d0100]
-なぜか先にサーボモータを設定する必要あり
Servo servo;
int sv_pin = 9;
void setup()
{
servo.attach(sv_pin);
Serial.begin(38400);
}
--多分、ピンの取り合いだと思う
-モータの消費電流が大きいと、シリアル通信が止まるときがある。
広告 |