Чт янв 29, 2015 16:41:34
Пт фев 06, 2015 16:45:49
Пт фев 13, 2015 10:06:09
Вс фев 15, 2015 12:31:26
Вс фев 15, 2015 13:42:38
Ср апр 08, 2015 16:32:59
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0001 ; External Interrupt 0
.equ PCI0addr = 0x0002 ; External Interrupt Request 0
.equ OVF0addr = 0x0003 ; Timer/Counter0 Overflow
.equ ERDYaddr = 0x0004 ; EEPROM Ready
.equ ACIaddr = 0x0005 ; Analog Comparator
.equ OC0Aaddr = 0x0006 ; Timer/Counter Compare Match A
.equ OC0Baddr = 0x0007 ; Timer/Counter Compare Match B
.equ WDTaddr = 0x0008 ; Watchdog Time-out
.equ ADCCaddr = 0x0009 ; ADC Conversion Complete
.equ INT_VECTORS_SIZE = 10 ; size in words
; ***** INTERRUPT VECTORS ************************************************
.equ INT0addr = 0x0002 ; External Interrupt Request 0
.equ INT1addr = 0x0004 ; External Interrupt Request 1
.equ PCI0addr = 0x0006 ; Pin Change Interrupt Request 0
.equ PCI1addr = 0x0008 ; Pin Change Interrupt Request 0
.equ PCI2addr = 0x000a ; Pin Change Interrupt Request 1
.equ WDTaddr = 0x000c ; Watchdog Time-out Interrupt
.equ OC2Aaddr = 0x000e ; Timer/Counter2 Compare Match A
.equ OC2Baddr = 0x0010 ; Timer/Counter2 Compare Match A
.equ OVF2addr = 0x0012 ; Timer/Counter2 Overflow
.equ ICP1addr = 0x0014 ; Timer/Counter1 Capture Event
.equ OC1Aaddr = 0x0016 ; Timer/Counter1 Compare Match A
.equ OC1Baddr = 0x0018 ; Timer/Counter1 Compare Match B
.equ OVF1addr = 0x001a ; Timer/Counter1 Overflow
.equ OC0Aaddr = 0x001c ; TimerCounter0 Compare Match A
.equ OC0Baddr = 0x001e ; TimerCounter0 Compare Match B
.equ OVF0addr = 0x0020 ; Timer/Couner0 Overflow
.equ SPIaddr = 0x0022 ; SPI Serial Transfer Complete
.equ URXCaddr = 0x0024 ; USART Rx Complete
.equ UDREaddr = 0x0026 ; USART, Data Register Empty
.equ UTXCaddr = 0x0028 ; USART Tx Complete
.equ ADCCaddr = 0x002a ; ADC Conversion Complete
.equ ERDYaddr = 0x002c ; EEPROM Ready
.equ ACIaddr = 0x002e ; Analog Comparator
.equ TWIaddr = 0x0030 ; Two-wire Serial Interface
.equ SPMRaddr = 0x0032 ; Store Program Memory Read
.equ INT_VECTORS_SIZE = 52 ; size in words
rjmp
rjmp (rjmp - занимает 2 байта)
reti (заглушка, занимает 2 байта)
...
jmp
jmp (jmp - занимает 4 байта)
reti (заглушка, занимает 2 байта)
nop (пустая команда, для дополнения 4 байт)
...
Ср апр 08, 2015 16:35:14
Ср апр 08, 2015 16:59:43
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ FLASHEND = 0x0fff ; Note: Word address
Пт апр 10, 2015 02:53:37
Engineer_Keen писал(а):
- Код:
; ***** DATA MEMORY DECLARATIONS *****************************************
.equ FLASHEND = 0x0fff ; Note: Word address
Если FLASHEND больше 0х0fff (4кслов=8кбайт), то разрядности RJMP не хватит чтобы попасть в любое место флеша, поэтому в таких контроллерах размеры векторов прерывания по два слова, чтобы вместить команду JMP.
Адреса векторов в файле описания - в словах, поэтому для тини: 0000,0001,0002,... а для мег больше 8к: 0000,0002,0004...
Пт май 08, 2015 08:44:20
Пт май 22, 2015 02:42:17
Пт май 22, 2015 16:04:16
Пн май 25, 2015 16:49:58
Пн май 25, 2015 17:41:22
Lihouzov писал(а):Нужен ассемблерный код, для деления и умножения целых чисел. Кто ибо писал данный код?
Пн май 25, 2015 17:44:47
Вт май 26, 2015 21:48:26
Lihouzov писал(а):Нужен ассемблерный код, для деления и умножения целых чисел. Кто ибо писал данный код?
Вт май 26, 2015 22:09:08
Пн июн 01, 2015 03:16:53
Пн июн 01, 2015 18:54:46
Ср июн 03, 2015 08:44:08