logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Timer i ASM - pomoc w ustawieniu

11111olo 01 Paź 2009 21:26 1230 4
REKLAMA
  • #1 7080413
    11111olo
    Poziom 42  
    Witam
    Chcę uruchomić TIMER1 pod AVR Studio i mam problem z jego ustawieniem. O ile wiem jak ustawić preskaler to nigdzie nie mogę się doczytać do czego służą bity WGM11 i WGM10 w rejestrzeTCCR1A?
    Wiem że ustalają one tryb pracy.
    Proszę o pomoc.
  • REKLAMA
  • Pomocny post
    #2 7080582
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 7083617
    11111olo
    Poziom 42  
    Chcę wykorzystać Timer1 w najzwyklejszy sposób czyli wywołać przerwanie po przepełnieniu licznika.
    Aby ustawić wektor możemy wpisać np.
    .org 8
    rjmp przerwanie

    Jednak mi chodzi o coś takiego.
    Jest to przykład przerwania Int0.
    .org int0addr
    rjmp przerwanie

    Co tam napisać?
  • REKLAMA
  • #4 7084044
    Konto nie istnieje
    Poziom 1  
  • #5 7084226
    11111olo
    Poziom 42  
    Już wiem.
    W pliku m8def.inc są takie wpisy:
    .equ	INT0addr=$001	; External Interrupt0 Vector Address
    .equ	INT1addr=$002	; External Interrupt1 Vector Address
    .equ	OC2addr =$003	; Output Compare2 Interrupt Vector Address
    .equ	OVF2addr=$004	; Overflow2 Interrupt Vector Address
    .equ	ICP1addr=$005	; Input Capture1 Interrupt Vector Address
    .equ	OC1Aaddr=$006	; Output Compare1A Interrupt Vector Address
    .equ	OC1Baddr=$007	; Output Compare1B Interrupt Vector Address
    .equ	OVF1addr=$008	; Overflow1 Interrupt Vector Address
    .equ	OVF0addr=$009	; Overflow0 Interrupt Vector Address
    .equ	SPIaddr =$00a	; SPI Interrupt Vector Address
    .equ	URXCaddr=$00b	; USART Receive Complete Interrupt Vector Address
    .equ	UDREaddr=$00c	; USART Data Register Empty Interrupt Vector Address
    .equ	UTXCaddr=$00d	; USART Transmit Complete Interrupt Vector Address
    .equ	ADCCaddr=$00e	; ADC Interrupt Vector Address
    .equ	ERDYaddr=$00f	; EEPROM Interrupt Vector Address
    .equ	ACIaddr =$010	; Analog Comparator Interrupt Vector Address
    .equ   TWIaddr =$011   ; Irq. vector address for Two-Wire Interface
    .equ	SPMaddr =$012	; SPM complete Interrupt Vector Address
    .equ	SPMRaddr =$012  ; SPM complete Interrupt Vector Address
    

    Mnie interesował

    Po wpisaniu jak wyżej jest ok.

    Dlatego chodziło mi o takie nazwy bo na Atmedze 128 jest o wiele więcej przerwań i do tego mają inną numerację.
    .equ	INT0addr  = $002	; External Interrupt0 Vector Address
    .equ	INT1addr  = $004	; External Interrupt1 Vector Address
    .equ	INT2addr  = $006	; External Interrupt2 Vector Address
    .equ	INT3addr  = $008	; External Interrupt3 Vector Address
    .equ	INT4addr  = $00a	; External Interrupt4 Vector Address
    .equ	INT5addr  = $00c	; External Interrupt5 Vector Address
    .equ	INT6addr  = $00e	; External Interrupt6 Vector Address
    .equ	INT7addr  = $010	; External Interrupt7 Vector Address
    .equ	OC2addr   = $012	; Output Compare2 Interrupt Vector Address
    .equ	OVF2addr  = $014	; Overflow2 Interrupt Vector Address
    .equ	ICP1addr  = $016	; Input Capture1 Interrupt Vector Address
    .equ	OC1Aaddr  = $018	; Output Compare1A Interrupt Vector Address
    .equ	OC1Baddr  = $01a	; Output Compare1B Interrupt Vector Address
    .equ	OVF1addr  = $01c	; Overflow1 Interrupt Vector Address
    .equ	OC0addr   = $01e	; Output Compare0 Interrupt Vector Address
    .equ	OVF0addr  = $020	; Overflow0 Interrupt Vector Address
    .equ	SPIaddr   = $022	; SPI Interrupt Vector Address
    .equ	URXC0addr = $024	; USART0 Receive Complete Interrupt Vector Address
    .equ	UDRE0addr = $026	; USART0 Data Register Empty Interrupt Vector Address
    .equ	UTXC0addr = $028	; USART0 Transmit Complete Interrupt Vector Address
    .equ    ADCCaddr  = $02a	; ADC Conversion Complete Handle
    .equ	ERDYaddr  = $02c	; EEPROM Write Complete Handle
    .equ	ACIaddr   = $02e	; Analog Comparator Interrupt Vector Address
    .equ	OC1Caddr  = $030	; Output Compare1C Interrupt Vector Address
    .equ	ICP3addr  = $032	; Input Capture3 Interrupt Vector Address
    .equ	OC3Aaddr  = $034	; Output Compare3A Interrupt Vector Address
    .equ	OC3Baddr  = $036	; Output Compare3B Interrupt Vector Address
    .equ	OC3Caddr  = $038	; Output Compare3C Interrupt Vector Address
    .equ	OVF3addr  = $03A	; Overflow3 Interrupt Vector Address
    .equ	URXC1addr = $03C	; USART1 Receive Complete Interrupt Vector Address
    .equ	UDRE1addr = $03E	; USART1 Data Register Empty Interrupt Vector Address
    .equ	UTXC1addr = $040	; USART1 Transmit Complete Interrupt Vector Address
    .equ    TWIaddr   = $042	; TWI Interrupt Vector Address
    .equ	SPMRaddr  = $044	; Store Program Memory Ready Interrupt Vector Address
REKLAMA