Схемы, программы, прошивки помощь по МК AT90S2313

Discussion in 'Электроника и Фрикинг' started by NetSter, 12 Feb 2010.

  1. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    открыл и че?

    Code:
    .equ	INT0addr=$001	;External Interrupt0 Vector Address
    .equ	INT1addr=$002	;External Interrupt1 Vector Address
    .equ	ICP1addr=$003	;Input Capture1 Interrupt Vector Address
    .equ	OC1addr =$004	;Output Compare1 Interrupt Vector Address
    .equ	OVF1addr=$005	;Overflow1 Interrupt Vector Address
    .equ	OVF0addr=$006	;Overflow0 Interrupt Vector Address
    .equ	URXCaddr=$007	;UART Receive Complete Interrupt Vector Address
    .equ	UDREaddr=$008	;UART Data Register Empty Interrupt Vector Address
    .equ	UTXCaddr=$009	;UART Transmit Complete Interrupt Vector Address
    .equ	ACIaddr =$00a	;Analog Comparator Interrupt Vector Address
    
    а вот твой вариант из даташита

    Code:
    Address Labels     Code            Comments
    
     $000               rjmp RESET      ; Обработка сброса
    
     $001               rjmp EXT_INT0   ; Обработка IRQ0
    
     $002               rjmp EXT_INT1   ; Обработка IRQ1
    
     $003               rjmp TIM_CAPT1  ; Обработка захвата таймера 1
    
     $004               rjmp TIM_COMP1  ; Обработка совпадения таймера 1
    
     $005               rjmp TIM_OVF1   ; Обработка переполнения таймера 1
    
     $006               rjmp TIM_OVF0   ; Обработка переполнения таймера 0
    
     $007               rjmp UART_RXC   ; Обработка приема байта
    
     $008               rjmp UART_DRE   ; Обработка освобождения UDR
    
     $009               rjmp UART_TXC   ; Обработка передачи байта
    
     $00a               rjmp ANA_COMP   ; Обработка аналогового компаратора
    
    
    Разницу в константах не замечаеш?

    мы или думаем о разном или хз.

    И того или пишем таблицу и константы как нам хочется или используем то что имеем в *.inc/

    Я вообще о том - что наименование констант в даташите и инклуде совершенно разные.

    З.Ы. уточнение.

    Я привык векторы писать так

    Code:
    .ORG	 INT0addr	;Обработка прерывания INT0
    		RETI
    .ORG	 INT1addr	;Обработка прерывания INT1
    		RETI
    .ORG	 ICP1addr	;Обработка прерывания по захвату таймера 1
    		RETI
    .ORG	 OC1addr		;Обработка прерывания по совпадению таймера 1
    		RETI
    .ORG	 OVF1addr	;Обработка прерывания по переполнению таймера 1
    		RJMP OVF1
    .ORG	 OVF0addr	;Обработка прерывания по переполнению таймера 0
    		RETI
    .ORG	 URXCaddr	;Обработка прерывания при приеме байта (UART)
    		RETI
    .ORG	 UDREaddr	;Обработка прерывания при освобождении регистра UDR
    		RETI
    .ORG	 UTXCaddr	;Обработка прерывания при передаче байта (UART)
    		RETI
    .ORG	 ACIaddr 	;Обработка прерывания аналогового компаратора
    		RETI
    
    Вот на этой почве мы и разошлись - разные подходы , короч прав и ты и я , заканчиваем этот бедлам =)
     
    #21 POS_troi, 13 Feb 2010
    Last edited: 13 Feb 2010
    1 person likes this.
  2. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    п.с. обычно org обозначают один раз в проге reti тоже) в начале и в конце соответственно) ну а там хз. то что я кидал я даже не обработал...