SPI / 雷センサーAS3935 / ライブラリー化 / 動作確認

すべてのレジスタに楽にさわれるようライブラリーにした。もう一度チャッカマンで動作確認をする。

#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;
}