Blame | Last modification | View Log | Download | RSS feed
ifndef __tx313inc__tx313inc equ 1savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - File REGTX313.INC *;* *;* Contains common bit & Register definitions for AT2313(A)/4313 *;* *;****************************************************************************;----------------------------------------------------------------------------; Chip ConfigurationMCUCR port 0x35 ; MCU General Control RegisterSM0 avrbit MCUCR,4 ; Sleep Mode SelectSE avrbit MCUCR,5 ; Sleep EnableSM1 avrbit MCUCR,6MCUSR port 0x34 ; MCU Status RegisterWDRF avrbit MCUSR,3 ; Watchdog Reset FlagBORF avrbit MCUSR,2 ; Brown-out Reset FlagEXTRF avrbit MCUSR,1 ; External Reset FlagPORF avrbit MCUSR,0 ; Power-On Reset FlagOSCCAL port 0x31 ; Oscillator CalibrationCLKPR port 0x26 ; Clock PrescalerCLKPS0 avrbit CLKPR,0 ; Prescaler SelectCLKPS1 avrbit CLKPR,1CLKPS2 avrbit CLKPR,2CLKPS3 avrbit CLKPR,3CLKPCE avrbit CLKPR,7 ; Clock Prescaler Change Enableif MOMCPUNAME<>"ATTINY2313"PRR port 0x06 ; Power Reduction RegisterPRUSART avrbit PRR,0 ; Power Reduction USARTPRUSI avrbit PRR,1 ; Power Reduction USIPRTIM0 avrbit PRR,2 ; Power Reduction Timer/Counter 0PRTIM1 avrbit PRR,3 ; Power Reduction Timer/Counter 1BODCR port 0x07 ; Brown-Out Detector Control RegisterBODSE avrbit BODCR,0 ; BOD SleepBODS avrbit BODCR,1 ; BOD Sleep Enableendif;----------------------------------------------------------------------------; EEPROM/Flash AccessEEAR port 0x1e ; EEPROM Address RegisterEEDR port 0x1d ; EEPROM Data RegisterEECR port 0x1c ; EEPROM Control RegisterEEPM1 avrbit EECR,5 ; EEPROM Program ModeEEPM0 avrbit EECR,4EERIE avrbit EECR,3 ; EEPROM Ready Interrupt EnableEEMPE avrbit EECR,2 ; EEPROM Master Write EnableEEPE avrbit EECR,1 ; EEPROM Write EnableEERE avrbit EECR,0 ; EEPROM Read EnableSPMCSR port 0x37 ; Store Program Memory Control/Status RegisterCTPB avrbit SPMCSR,4 ; Clear Temporary Page BufferRFLB avrbit SPMCSR,3 ; Read Fuse and Lock BitsPGWRT avrbit SPMCSR,2 ; Page WritePGERS avrbit SPMCSR,1 ; Page EraseSELFPRGEN avrbit SPMCSR,0 ; Self Programming Enable;----------------------------------------------------------------------------; GPIOPUD avrbit MCUCR,7 ; Pull-Up DisablePINA port 0x19 ; Port A @ 0x19 (IO) ff.__PORTA_BITS equ 0x07 ; (bits 0..2)PINB port 0x16 ; Port B @ 0x16 (IO) ff.PIND port 0x10 ; Port D q 0x10 (IO) ff.__PORTD_BITS equ 0x7f ; (bits 0..6)GPIOR0 port 0x13 ; General Purpose I/O Register 0GPIOR1 port 0x14 ; General Purpose I/O Register 1GPIOR2 port 0x15 ; General Purpose I/O Register 2DIDR port 0x01 ; Digital Input Disable RegisterAIN0D avrbit DIDR,0 ; AIN0 Digital Input DisableAIN1D avrbit DIDR,1 ; AIN1 Digital Input Disableif MOMCPUNAME="ATTINY2313"PCMSK port 0x20 ; Pin Change Interrupt MaskPCINT0 avrbit PCMSK,0 ; Enable Pin Change Interrupt 0PCINT1 avrbit PCMSK,1 ; Enable Pin Change Interrupt 1PCINT2 avrbit PCMSK,2 ; Enable Pin Change Interrupt 2PCINT3 avrbit PCMSK,3 ; Enable Pin Change Interrupt 3PCINT4 avrbit PCMSK,4 ; Enable Pin Change Interrupt 4PCINT5 avrbit PCMSK,5 ; Enable Pin Change Interrupt 5PCINT6 avrbit PCMSK,6 ; Enable Pin Change Interrupt 6PCINT7 avrbit PCMSK,7 ; Enable Pin Change Interrupt 7elseifPCMSK0 port 0x20 ; Pin Change Interrupt Mask 0endifif MOMCPUNAME<>"ATTINY2313"PCMSK1 port 0x04 ; Pin Change Interrupt Mask 1PCINT8 avrbit PCMSK1,0 ; Enable Pin Change Interrupt 8PCINT9 avrbit PCMSK1,1 ; Enable Pin Change Interrupt 9PCINT10 avrbit PCMSK1,2 ; Enable Pin Change Interrupt 10PCMSK2 port 0x05 ; Pin Change Interrupt Mask 2PCINT11 avrbit PCMSK2,0 ; Enable Pin Change Interrupt 11PCINT12 avrbit PCMSK2,1 ; Enable Pin Change Interrupt 12PCINT13 avrbit PCMSK2,2 ; Enable Pin Change Interrupt 13PCINT14 avrbit PCMSK2,3 ; Enable Pin Change Interrupt 14PCINT15 avrbit PCMSK2,4 ; Enable Pin Change Interrupt 15PCINT16 avrbit PCMSK2,5 ; Enable Pin Change Interrupt 16PCINT17 avrbit PCMSK2,6 ; Enable Pin Change Interrupt 17endif;----------------------------------------------------------------------------; Interrupt Vectorsenumconf 1,codeenum INT0_vect=1 ; External Interrupt Request 0nextenum INT1_vectnextenum TIMER1_CAPT_vectnextenum TIMER1_COMPA_vect ; Timer/Counter 1 Compare Match Anextenum TIMER1_OVF_vect ; Timer/Counter 1 Overflownextenum TIMER0_OVF_vect ; Timer/Counter 0 Overflownextenum USART_RX_vect ; USART Rx Completenextenum USART_UDRE_vect ; USART Data Register Emptynextenum USART_TX_vect ; USART Tx Completenextenum ANA_COMP_vect ; Analog Comparatorif MOMCPUNAME="ATTINY2313"nextenum PCINT_vect ; Pin Change Interruptelseifnextenum PCINT0_vect ; Pin Change Interrupt 0endifnextenum TIMER1_COMPB_vect ; Timer/Counter 1 Compare Match Bnextenum TIMER0_COMPA_vect ; Timer/Counter 0 Compare Match Anextenum TIMER0_COMPB_vect ; Timer/Counter 0 Compare Match Bnextenum USI_START_vect ; USI Startnextenum USI_OVERFLOW_vect ; USI Overflownextenum EEPROM_READY_vect ; EEPROM Readynextenum WDT_OVERFLOW_vect ; Watchdog Timer Overflowif MOMCPUNAME<>"ATTINY2313"nextenum PCINT1_vect ; Pin Change Interrupt 1nextenum PCINT2_vect ; Pin Change Interrupt 2endif;----------------------------------------------------------------------------; External InterruptsISC00 avrbit MCUCR,0 ; External Interrupt 0 Sense ControlISC01 avrbit MCUCR,1ISC10 avrbit MCUCR,2 ; External Interrupt 1 Sense ControlISC11 avrbit MCUCR,3GIMSK port 0x3b ; General Interrupt Mask RegisterINT0 avrbit GIMSK,6 ; Enable External Interrupt 0INT1 avrbit GIMSK,7 ; Enable External Interrupt 1if MOMCPUNAME="ATTINY2313"PCIE avrbit GIMSK,5 ; Pin Change Interrupt EnableelseifPCIE0 avrbit GIMSK,5 ; Pin Change Interrupt Enable 0PCIE2 avrbit GIMSK,4 ; Pin Change Interrupt Enable 2PCIE1 avrbit GIMSK,3 ; Pin Change Interrupt Enable 1endifEIFR port 0x3a ; External Interrupt Flag RegisterINTF0 avrbit EIFR,6 ; External Interrupt 0 OccuredINTF1 avrbit EIFR,7 ; External Interrupt 1 Occuredif MOMCPUNAME="ATTINY2313"PCIF avrbit EIFR,5 ; Pin Change Interrupt OccuredelseifPCIF0 avrbit EIFR,5 ; Pin Change Interrupt 0 OccuredPCIF2 avrbit EIFR,4 ; Pin Change Interrupt 2 OccuredPCIF1 avrbit EIFR,3 ; Pin Change Interrupt 1 Occuredendif;----------------------------------------------------------------------------; TimersTCCR0A port 0x30 ; Timer/Counter 0 Control Register AWGM00 avrbit TCCR0A,0 ; Timer/Counter 0 Waveform Generation ModeWGM01 avrbit TCCR0A,1COM0B0 avrbit TCCR0A,4 ; Timer/Counter 0 Output Compare Mode BCOM0B1 avrbit TCCR0A,5COM0A0 avrbit TCCR0A,6 ; Timer/Counter 0 Output Compare Mode ACOM0A1 avrbit TCCR0A,7TCCR0B port 0x33 ; Timer/Counter 0 Control Register BCS00 avrbit TCCR0B,0 ; Timer/Counter 0 Clock SelectCS01 avrbit TCCR0B,1CS02 avrbit TCCR0B,2WGM02 avrbit TCCR0B,3FOC0B avrbit TCCR0B,6 ; Timer/Counter 0 Force Output Compare BFOC0A avrbit TCCR0B,7 ; Timer/Counter 0 Force Output Compare ATCNT0 port 0x32 ; Timer/Counter 0 ValueOCR0A port 0x36 ; Timer/Counter 0 Output Compare Value AOCR0B port 0x3c ; Timer/Counter 0 Output Compare Value BTCCR1A port 0x2f ; Timer/Counter 1 Control Register AWGM10 avrbit TCCR1A,0 ; Timer/Counter 1 Waveform Generation ModeWGM11 avrbit TCCR1A,1COM1B0 avrbit TCCR1A,4 ; Timer/Counter 1 Output Compare Mode BCOM1B1 avrbit TCCR1A,5COM1A0 avrbit TCCR1A,6 ; Timer/Counter 1 Output Compare Mode ACOM1A1 avrbit TCCR1A,7TCCR1B port 0x2e ; Timer/Counter 1 Control Register BCS10 avrbit TCCR1B,0 ; Timer/Counter 1 Clock SelectCS11 avrbit TCCR1B,1CS12 avrbit TCCR1B,2WGM12 avrbit TCCR1B,3WGM13 avrbit TCCR1B,4ICES1 avrbit TCCR1B,6 ; Timer/Counter 1 Input Capture Edge SelectICNC1 avrbit TCCR1B,7 ; Timer/Counter 1 Input Capture Noise CancelerTCCR1C port 0x22 ; Timer/Counter 1 Control Register CFOC1B avrbit TCCR1C,6 ; Timer/Counter 1 Force Output Compare BFOC1A avrbit TCCR1C,7 ; Timer/Counter 1 Force Output Compare ATCNT1L port 0x2c ; Timer/Counter 1 Value LSBTCNT1H port 0x2d ; Timer/Counter 1 Value MSBOCR1AL port 0x2a ; Timer/Counter 1 Output Compare Value A LSBOCR1AH port 0x2b ; Timer/Counter 1 Output Compare Value A MSBOCR1BL port 0x28 ; Timer/Counter 1 Output Compare Value B LSBOCR1BH port 0x29 ; Timer/Counter 1 Output Compare Value B MSBICR1L port 0x24 ; Timer/Counter 1 Input Capture Register LSBICR1H port 0x25 ; Timer/Counter 1 Input Capture Register MSBTIMSK port 0x39 ; Timer/Counter Interrupt Mask RegisterOCIE0A avrbit TIMSK,0 ; Timer/Counter 0 Output Compare Interrupt Enable ATOIE0 avrbit TIMSK,1 ; Timer/Counter 0 Overflow Interrupt EnableOCIE0B avrbit TIMSK,2 ; Timer/Counter 0 Output Compare Interrupt Enable BICIE1 avrbit TIMSK,3 ; Timer/Counter 0 Input Capute Interrupt EnableOCIE1B avrbit TIMSK,5 ; Timer/Counter 1 Output Compare Interrupt Enable BOCIE1A avrbit TIMSK,6 ; Timer/Counter 1 Output Compare Interrupt Enable ATOIE1 avrbit TIMSK,7 ; Timer/Counter 1 Overflow Interrupt EnableTIFR port 0x38 ; Timer Interrupt Status RegisterGTCCR port 0x23 ; General Timer/Counter Control RegisterPSR10 avrbit GTCCR,0 ; Timer/Counter 0/1 Prescaler Reset;----------------------------------------------------------------------------; Watchdog TimerWDTCSR port 0x21 ; Watchdog Control/Status RegisterWDP0 avrbit WDTCSR,0 ; PrescalerWDP1 avrbit WDTCSR,1WDP2 avrbit WDTCSR,2WDE avrbit WDTCSR,3 ; Enable WatchdogWDCE avrbit WDTCSR,4 ; Change EnableWDP3 avrbit WDTCSR,5WDIE avrbit WDTCSR,6 ; Enable Watchdog InterruptWDIF avrbit WDTCSR,7 ; Watchdog Interrupt Occured?;----------------------------------------------------------------------------; Analog Comparatorinclude "acm.inc";----------------------------------------------------------------------------; USARTUDR port 0x0c ; USART I/O Data RegisterUCSRA port 0x0b ; USART Control & Status Register AMPCM avrbit UCSRA,0 ; Multi Processor Communication ModeU2X avrbit UCSRA,1 ; Double Transmission SpeedUPE avrbit UCSRA,2 ; Parity ErrorDOR avrbit UCSRA,3 ; OverrunFE avrbit UCSRA,4 ; Framing ErrorUDRE avrbit UCSRA,5 ; Data Register EmptyTXC avrbit UCSRA,6 ; Transmit CompleteRXC avrbit UCSRA,7 ; Receive CompleteUCSRB port 0x0a ; USART Control & Status Register BTXB8 avrbit UCSRB,0 ; Transmit Bit 8RXB8 avrbit UCSRB,1 ; Receive Bit 8UCSZ2 avrbit UCSRB,2 ; Character SizeTXEN avrbit UCSRB,3 ; Enable TransmitterRXEN avrbit UCSRB,4 ; Enable ReceiverUDRIE avrbit UCSRB,5 ; Enable Data Register Empty InterruptTXCIE avrbit UCSRB,6 ; Enable Transmit Complete InterruptRXCIE avrbit UCSRB,7 ; Enable Receive Complete InterruptUCSRC port 0x03 ; USART Control & Status Register CUCPOL avrbit UCSRC,0 ; Clock PolarityUCSZ0 avrbit UCSRC,1 ; Character SizeUCSZ1 avrbit UCSRC,2USBS avrbit UCSRC,3 ; Stop Bit SelectUPM0 avrbit UCSRC,4 ; Parity Mode : Odd/EvenUPM1 avrbit UCSRC,5 ; Parity Mode : Enable/Disableif MOMCPUNAME="ATTINY2313"UMSEL avrbit UCSRC,6 ; USART Mode SelectelseifUMSEL0 avrbit UCSRC,6 ; USART Mode SelectUMSEL1 avrbit UCSRC,7endifUBRRH port 0x02 ; Baud Rate Register HighUBRRL port 0x09 ; Baud Rate Register Low;----------------------------------------------------------------------------; USIUSIDR port 0x0f ; USI Data RegisterUSISR port 0x0e ; USI Status RegisterUSICNT0 avrbit USISR,0 ; Counter ValueUSICNT1 avrbit USISR,1USICNT2 avrbit USISR,2USICNT3 avrbit USISR,3USIDC avrbit USISR,4 ; Data Output CollisionUSIPF avrbit USISR,5 ; Stop Condition FlagUSIOIF avrbit USISR,6 ; Counter Overflow Interrupt FlagUSISIF avrbit USISR,7 ; Start Condition Interrupt FlagUSICR port 0x0d ; USI Control RegisterUSITC avrbit USICR,0 ; Toggle Clock Port PinUSICLK avrbit USICR,1 ; Clock StrobeUSICS0 avrbit USICR,2 ; Clock Source SelectUSICS1 avrbit USICR,3USIWM0 avrbit USICR,4 ; Wire ModeUSIWM1 avrbit USICR,5USIOIE avrbit USICR,6 ; Counter Overflow Interrupt EnableUSISIE avrbit USICR,7 ; Start Condition Interrupt Enableif MOMCPUNAME<>"ATTINY2313"USIBR port 0x00 ; USI Buffer Registerendifrestore ; re-enable listingendif ; __tx313inc