#ifndef __sta013_h__ #define __sta013_h__ #include "common.h" //#define INIT_FLASH_ADDR 0x6000 #define INIT_EEPROM_ADDR 0x0000 /* * Port access macros for easier changing of pin assignments */ #define RESET PORTB.0 #define RESET_DIR DDRB.0 #define SDA PORTB.3 #define SDA_PIN PINB.3 #define SDA_DIR DDRB.3 #define SCL PORTB.4 #define SCL_DIR DDRB.4 #define SDI PORTB.2 #define SDI_DIR DDRB.2 #asm .equ __sdi_port = 0x18 .equ __sdi_port_sub = 2 #endasm #define SCKR PORTB.5 #define SCKR_DIR DDRB.5 #asm .equ __sckr_port = 0x18 .equ __sckr_port_sub= 5 #endasm #define DATAREQ_PIN PINF.6 #define RESET_OUT(x) RESET = x #define SDA_OUT(x) SDA = ((x) & 1) #define SCL_OUT(x) SCL = x #define SDI_OUT(x) SDI = ((x) & 1) #define SCKR_OUT(x) SCKR = x #define DATAREQ_IN DATAREQ_PIN #define SDA_IN SDA_PIN #define SDA_MODE_OUT {SDA_DIR = 1;} #define SDA_MODE_IN {SDA_DIR = 0; SDA = 1;} #define RESET_DELAY_0 20000 #define RESET_DELAY_1 20000 #define DETECT_RETRY 20 #define BI2C_WAIT #asm("nop") //#define BI2C_WAIT wait(100) /* * STA013 port definitions */ #define DLA 0x46 #define DLB 0x47 #define DRA 0x48 #define DRB 0x49 #define MFSFDF_411 0x50 #define PLLFRAC_411_L 0x51 #define PLLFRAC_411_R 0x52 #define PCMDIVIDER 0x54 #define PCMCONF 0x55 #define MSFDF_X 0x61 #define DAC_CLK_MODE 0x63 #define PLLFRAC_L 0x64 #define PLLFRAC_H 0x65 #define PLLCTRL 0x05 #define REG0x06 0x06 #define REG0x0B 0x0B #define HEADH 0x43 #define HEADM 0x44 #define HEADL 0x45 bit ACK = TRUE; char volume; // (0..10) void wait(int reps); char bi2c_get(char addr); void bi2c_put(char addr, char data); void setVolume(char vol); void incVolume(); void decVolume(); void sta013init(); void play(char data); #endif