自分がAVRで結構使うけど設定がめんどくさいという機能を関数化しました.
pfunctionは前から作ってたんですけど,もっと便利にならないかなぁとか思いまして...
とりあえずA/D変換を簡単にする機能と,winAVRから削除されたsbi,cbiを実装しました.
以下ソース.pfunction.cで保存して#includeで取り込んでご自由にお使いくださいね.
※注意:このソースコードをみてなんとなく使い方が分かる方以外は使わないでください.自分で組むプログラムでブラックボックスを使うのは怖い気がするので.../**************************************
pfunction.c
作成者:パパ
ver,2.0
**************************************/
#define sbi(addr,bit) addr|=(1<<bit)
#define cbi(addr,bit) addr&=~(1<<bit)
#define ibi(addr,bit) addr^=(1<<bit)
uint8_t ADConvert(int a)
{
ADMUX = 0x60|a;
ADCSRA = 0xC0;
loop_until_bit_is_clear(ADCSRA,ADSC);
return ADCH;
}
uint16_t AbsolteValue(int a)
{
if(a < 0) a = -a;
return a;
}
void ADCstart(int a)
{
ADMUX = 0x60|a;
ADCSRA = 0xC0;
}
uint8_t ADCfinish(void)
{
loop_until_bit_is_clear(ADCSRA,ADSC);
return ADCH;
}
でわでわ
※このソースコードにはミスがあります.2011年2月11日付けのものを使ってください.
0 件のコメント:
コメントを投稿