リセット信号を作る

リセット信号もATmega328Pで生成することにする。

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(){
    DDRD  |=  (1 << PD3); // PD3から!リセット信号を出力することにする。
    PORTD &= ~(1 << PD3); // 最初に!リセット信号をLにしておいて、
    _delay_ms(500 - 65);  // 適当にリセット時間を設けて、(65msはATmega328P自体のリセットからの遅延時間)
    PORTD |= (1 << PD3);  // リセット期間が明けたら!リセット信号をHにする。
    
    while(1);    
    return 0;
}

黄色がPC6、緑がPD3。
f:id:ti-nspire:20201018141113p:plain:h300 f:id:ti-nspire:20201018140715p:plain:h300