2014年10月12日日曜日

AVRをPCから外したら動かなくなる。。。件

マイコンはPCから外しても動作するはずなのに、なぜか動かない。(もちろん電源はつないでる。)
PCとライタがつながってるUSBを外したら、動かなくなる。
なぜ。。。
make flashで書き込んだのに、動かない。。。

これでずっと悩んでた訳ですが、、、
ATmega168pとライタを分離したらちゃんと動いた。
今まではマイコン-ライタをつないだ状態で、PC-ライタをつなぐUSBをPCから外しているだけだった。
でも、これでは動かないらしく、マイコン-ライタのケーブルを引っこ抜くとちゃんと動いた。
ライタが悪さしてるっぽい。

どのページみてもちゃんと動いてるし、わからんかったけど、すんごく初歩的。。。
あーあ。。。なんで今まで試さなかったのか。。。

何にしても解決してよかた。

2014年10月5日日曜日

AVR(ATMega168P) A/D変換成功!

A/D変換メモ。
だいぶ前の話になるけど、この前のA/D変換は、オーバーフローのせいだったっぽい。
A/D変換は10bitやけど、それを8bitにしたら出来たっぽい。
プログラムは次。(ちなみに、8bitどころか6bitにしてる)


/* Name: main.c
 * Author: <insert your name here>
 * Copyright: <insert your copyright message here>
 * License: <insert your license reference here>
 */

#include <avr/io.h>

void init_PORT(){
    DDRB = 0xff;
    DDRC = 0x00;
    
}


void init_AD(){
    //外部基準電圧AREF, 入力チャネルADC1
    ADMUX = 0x01;
    ADCSRA = 0x80;
}

int main(void)
{
    int x;
    
    init_PORT();
    init_AD();
    
    /* insert your hardware initialization here */
    for(;;){
        ADCSRA |= 0x40;
        while(ADCSRA & 0x40);
        x = ADC;
        //PORTB = (x >> 2);
        /* insert your main loop code here */
        x = x/16;
        PORTB = x;
    }
    return 0;   /* never reached */
}

いろんな人のサイトを参考にしたけど、忘れた。
ちなみに成功したのはちょっと前の話。