PIC24FJ64GB002でLED点灯。
初の16bit。
USBホストのために買ったのだが折角なので試しておく。
しかしこれがなかなかうまく行かなかった。
まずひとつの原因が、8ビットのものとは違って、
データシートを見ると最小限の回路の指定があり、
この通りに組む必要があるらしい。
適当にpickitやledと接続するだけだとダメみたい。
面倒だから専用のテスト用基板を作った方が良さげ。
上記は理解できたのだが、どうしてもLEDが点灯しない。
色々試してたら点灯した。
どうもまだ回路図を正しく読む力が無いようで、余分な線を外したら動いた。
同じく回路図読めない人のために見難いけど画像を貼っときます。
回路図はネットにいっぱいあるのでそっちを参考にして下さい。
コンデンサが一個なくて電解になっちゃってて違うんだけど…。
プログラムはほとんどサンプルのまま。
(サンプルあったんだな…初めて気づいた)
色々試してるうちに、プライマリオシレータとインターナルオシレータの
違いが分からなかったので念のため内部のものにしてある。
|c|
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & FWDTEN_OFF & ICS_PGx2)
_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_NONE & FNOSC_FRCPLL)
/*
*
*/
void delay(void) {
long i = 65535;
while(i--)
;
}
int main(void) {
CLKDIV = 0;
TRISA = 0;
TRISB = 0;
// Setup PortA IOs as digital
AD1PCFG = 0xffff;
LATA = 0xFFFF;
LATB = 0xFFFF;
while(1) {
LATA = 0x0000;
LATB = 0x0000;
delay();
LATA = 0xFFFF;
LATB = 0xFFFF;
delay();
}
return 0;
}
||
LATというのは調べると分かるが
ポートの出力のためのレジスタ書き込みの際の不具合を抑えるためのもの。
入力はPORT、出力はLATを使うといいとどっかに書いてあった。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント