まず、スケッチ例をまず見ましょう。。。
まる2日の夜なべ仕事が無駄だった・・・・について
**************************************
2日前...
ATtiny1614でマイクロロボ作るにあたって
マイコンの状況を測定出来てたら何かと役に立つよな
AVR、ATtiny・・・は大抵のモノは内部温度検出やVccを
読み取ることができるとのこと。
なので調べてやってみようと始めたのだけど
ATtiny1614でそのものずばりのサンプルが見つけられない。
大抵、Arduino でやるなら先輩のありがたいサンプルがあるものだけど
よー見つけれんかった。
で、、、
チャットgpt先生まともに動くサンプル教えてくれることよくある。
でも、教えてくれたスケッチ動かない。。。
なんでWire・・・?
で・・・
あれ?
内部の2V使うんだっけ?
間違いだったのか・・・
でも、その修正版も動かない。。。
おいおい。。。
で・・・こんなんを10回ほど繰り返したけど
だめで...
この辺りからチャットgptではダメかな となった。
で・・・・しょうがない。ってことでまじめに?
結局データシート見ながらやることにした
だいたいわかった。。。
なるほど。。。
でもって、あーでもないこーでもないって めんどーだなぁって
思いながらも、、、こんな感じで温度とか取れるようになった。
uint16_t adcVal,dL, dH,count,count2;
//bool ADC0_conersionDone(void);
float temp1,temp2;
void setup(){
Serial.begin(57600);
ADC0_init();
}
void loop(){
int8_t sigrow_offset = SIGROW.TEMPSENSE1; // 識票列から符号付き変位(オフセット)補正値読み込み
uint8_t sigrow_gain = SIGROW.TEMPSENSE0; // 識票列から符号なし利得補正値読み込み
// uint16_t adc_reading = 0; // 1.1V内部基準電圧でのA/D変換結果
if (ADC0_conersionDone())
{
dH = ADC0.RESH;
dL = ADC0.RESL;
adcVal = dL | (dH << 8);
count2++;
ADC0.COMMAND = 0b00000001; // AD start
}
uint32_t temp = adcVal - sigrow_offset;
temp *= sigrow_gain; // 結果(10ビット×8ビット)は16ビット変数を溢れるかもしれません。
temp += 0x80; // 次の除算で正しい丸めを得るために1/2を加算
// temp >>= 8; // ケルビン温度を得るために結果を除算
// uint16_t temperature_in_K = temp-273;
temp >>= 4;
temp1 = temp/16 -273;
temp2 = 34.0 * (float)adcVal/536.0;
Serial.printf("count %3d adcValue:%5d temp1 ",count,adcVal);
Serial.print (String(temp1,2));
Serial.printf(" temp2 ");
Serial.println(String(temp2,2));
delay(1000);
count++;
}
bool ADC0_conersionDone(void)
{
return (ADC0.INTFLAGS & ADC_RESRDY_bm);
}
void ADC0_init(void)
{
VREF.CTRLA = 0b00010001;
ADC0.MUXPOS = 0b00011110; // temp
ADC0.CTRLA = 0b00000001; // 10ビット動作 ADC許可
ADC0.CTRLC = 0b01000001; // ref1.1V clk/4
ADC0.CTRLD = 0b10110000;
ADC0.SAMPCTRL =0b00011111;
ADC0.COMMAND = 0b00000001; // AD start
}
じゃないのに Arduino でやるのに残念・・・
ってここまで来て・・・・
そーだ、スケッチ例見るの忘れてたっての気が付いた。
readTempVcc なんてのがある!!!!
うそー ってなった。
ライブラリ
#include <megaTinyCore.h> を読み込めば、
readSupplyVoltage(); ・・・でVcc電圧
readTemp(); ・・・・で温度
が読める。ちょー簡単...
この2日間はなんだったんだ。泣きたくなった。
まずは
スケッチ例をまず見ましょう。。。でした。