2024年3月5日火曜日

WDT/USART,SPI,I2C at Uno

avr-attiny-tutorial/blink_watchdog_interupt/main.c at master · casperbang/avr-attiny-tutorial · GitHub 吉野さんによればwdt.h,avr/io.hが抜けているとのこと

以下のコードでattiny13aで大成功 WDTは、AVRマイコン・リファレンスブック P52の図2-18のように128KHzオシレータで動いているので、マイコンのクロックとは別になっています。内部・外部いずれのクロックでも同じ動作だともいます。

ATtiny ウォッチドッグタイマ割込みでLEDチカチカ | 東京お気楽カメラ (okiraku-camera.tokyo) これはattiny85系だった)

#include <avr/interrupt.h>

#include <avr/sleep.h>

#include <avr/wdt.h>

#include <avr/io.h>

#define LED PB0

ISR(WDT_vect) {

    // Toggle port B output 0 output state

    PORTB ^= _BV(LED);

}

int main(void) {

    // Set port B output 0 as output

    DDRB = _BV(LED);

    // Prescale timer to 4s -->wrong! 500msだった

    WDTCR |= (1<<WDP2) | (1<<WDP0); // 

    // Enable watchdog timer interrupts

    WDTCR |= (1<<WDTIE);

// ATtiny13Aでウォッチドッグタイマを使ったタイマー割り込み: 猫にコ・ン・バ・ン・ワ (cocolog-nifty.com) これによるとunoならwdtieでなくwdieになるげな

    // Enable global interrupts 

    sei();

    // Use the Power Down sleep mode

    set_sleep_mode(SLEEP_MODE_PWR_DOWN);

    for (;;) {

        sleep_mode(); // Deep sleep, waiting for interrupt

    }

}

以下はattiny2313で成功


/*
 *  WDT 【ATtiny2313】
 *   wdt.c  2024.3.6
 */
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>

#define LED PB0

ISR(WDT_OVERFLOW_vect) {   
    PORTB ^= _BV(LED);
}

int main(void) {
    DDRB = _BV(LED);
 WDTCSR |= (1<<WDIE) | (1<<WDP2) | (1<<WDP0);     // Enable watchdog timer interrupts
                                                                                                // Prescale timer to 500ms     
    sei();
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);                // Use the Power Down sleep mode
    while (1) {
        sleep_mode();                                                             // Deep sleep, waiting for interrupt
    }
}


------------------------------------------------------------

普通はtx,rxでいい。。。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 AT24Cxx - Arduino Reference 中華EEPROM I2C仕様 なんかおかしい。。。。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

A-Dコンバータ その1 10ビットSPI MCP3002 - Arduinoクックブック (denshi.club) 

SPIサンプルコード成功した 2チャンネルなので使い勝手がいい,bme vs dht like

0 件のコメント:

コメントを投稿