29 lines
728 B
C
29 lines
728 B
C
#ifndef AVR_H
|
|
#define AVR_H
|
|
|
|
#include <stdint.h>
|
|
#include <avr/io.h>
|
|
#include <avr/interrupt.h>
|
|
|
|
// Make sure JIFFY_uS is going to be an integer and not a float!
|
|
#define JIFFIES_PER_SECOND 100
|
|
#define JIFFY_uS (1000000 / JIFFIES_PER_SECOND)
|
|
|
|
#define bit(pin, bit, on) pin = (on ? (pin | bit) : (pin & ~bit))
|
|
|
|
#define mode(on) bit(PORTA, _BV(0), on)
|
|
#define sin(on) bit(PORTA, _BV(1), on)
|
|
#define sclk(on) bit(PORTA, _BV(2), on)
|
|
#define xlat(on) bit(PORTA, _BV(3), on)
|
|
// Connect GSCLK to SCLK
|
|
// Connect BLANK to XLAT
|
|
// TRUST ME, THIS TOTALLY WORKS
|
|
|
|
#define NESOUT 6
|
|
#define nesclk(on) bit(PORTA, _BV(4), on)
|
|
#define nesltch(on) bit(PORTA, _BV(5), on)
|
|
#define nesout() ((PINA & _BV(NESOUT)) << NESOUT)
|
|
|
|
void init(void);
|
|
|
|
#endif |