/*
 * ne555_astable.c
 *
 */

#include "netlist/devices/net_lib.h"

NETLIST_START(ne555_astable)

    /*
     * Astable ne555
     *
     */

    /* Standard stuff */

    SOLVER(Solver, 48000)

    ANALOG_INPUT(V5, 5)  // 5V

    /* Wiring up the ne555 */

    // astable NE555, 1.13 ms period

    RES(RA, 5000)
    RES(RB, 3000)
    CAP(C, 0.15e-6)
    NE555(555)

    NET_C(GND, 555.GND)
    NET_C(V5, 555.VCC)
    NET_C(V5, 555.RESET)

    NET_C(RA.1, 555.VCC)
    NET_C(RA.2, 555.DISCH)

    NET_C(RB.1, 555.DISCH)
    NET_C(RB.2, 555.TRIG)

    NET_C(RB.2, 555.THRESH)

    NET_C(555.TRIG, C.1)
    NET_C(C.2, GND)

    LOG(log2, C.1)
    LOG(log3, 555.OUT)

NETLIST_END()
