すべてのレジスタに楽にさわれるようライブラリーにした。もう一度チャッカマンで動作確認をする。
#define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "USARTClass.h" #include "AS3935SPI_Class.h" AS3935SPI_Class lightning("PB2"); // 雷センサーAS3935のCS端子をPB2に接続して実体化する。 volatile uint8_t detected = 0; ISR(INT0_vect){ detected = 1; } int main(){ usart.init(); lightning.initINT0(); // マイコンの外部割り込みを有効にして、 while(1){ if(detected){ // 何かが検出されたら、 detected = 0; _delay_ms(3); // 少し待ってから、 usart.printString("INT Source: "); usart.printString(INT_NAMES[lightning.getRegister(INT)]); // 割り込み要因を表示して、 usart.printString("; "); usart.printString("Distance (km): "); usart.printByte(lightning.getRegister(DISTANCE)); // 推定距離(km)を表示する。 usart.printString("\n"); } } return 0; }