📄 indoor-main.asm
字号:
; ---------------------------------------------------------
;
; Indoor Unit Programm
;
; ---------------------------------------------------------
; Author: Manfred Langemann
; Begin of project: 20.01.2006
; Latest version generated: 22.02.2006:
; Filename: Indoor-Main.asm
; ---------------------------------------------------------
; Comments for ISP Programming:
; - Disabe JTAG interface fuse in order to use Port C (Pin:2,3,4,5)
; - Set external high frequency crystal oscillator flag fuse for 8MHz;
; CKSEL=1111, SUT=10
; which refers to start up time: 16K CK + 4 ms
;
; ---------------------------------------------------------
; Assembler and Processor definitions
; ---------------------------------------------------------
;
.NOLIST
.include "m32def.inc"; ATmega32
.LIST
;
; ---------------------------------------------------------
; General purpuse definitions
; ---------------------------------------------------------
;
.def temp1 = r16 ; Temporary register
.def temp2 = r17 ; Temporary register
.def temp3 = r18 ; Temporary register
.def temp4 = r19 ; Temporary register
.def delay1 = r20 ; Register used for delay
.def delay2 = r21 ; Register used for delay
.def delay3 = r22 ; Register used for delay
.equ Timeout_10 = 10 ; Timeout value
.equ Timeout_20 = 20 ; Timeout value
.equ Timeout_100 = 100 ; Timeout value
.equ Timeout_200 = 200 ; Timeout value
.equ Timeout_1000 = 1000 ; Timeout value
;
; ---------------------------------------------------------
; Data Segment
; Define the data in data segment (max SRAM_SIZE Bytes = 2048 for ATmega32)
; ---------------------------------------------------------
;
.DSEG
;
; ---------------------------------------------------------
; SD Card Variables in SRAM
; ---------------------------------------------------------
SDCard_Command_00: .BYTE 6 ; Reserve 6 bytes in SRAM for SD Card Command 00: Reset card
SDCard_Command_01: .BYTE 6 ; Reserve 6 bytes in SRAM for SD Card Command 01: Activate card
SDCard_Command_16: .BYTE 6 ; Reserve 6 bytes in SRAM for SD Card Command 16; Read a block of bytes
SDCard_Command_24: .BYTE 6 ; Reserve 6 bytes in SRAM for SD Card Command 24; Write a block of bytes
SDCard_DataBuffer: .BYTE 512 ; Reserve 512 bytes in SRAM for tranfer of bytes to and from SD Card
SDCard_Block_Index: .BYTE 4 ; 512 byte block index number on SD card
;
; ---------------------------------------------------------
; Code Segment
; ---------------------------------------------------------
;
.CSEG
.ORG $0000
jmp RESET ; RESET Reset Handler
jmp RESET ; EXT_INT0 IRQ0 Handler
jmp RESET ; EXT_INT1 IRQ1 Handler
jmp RESET ; EXT_INT2 IRQ2 Handler
jmp RESET ; TIM2_COMP Timer2 Compare Handler
jmp RESET ; TIM2_OVF Timer2 Overflow Handler
jmp RESET ; TIM1_CAPT Timer1 Capture Handler
jmp RESET ; TIM1_COMPA Timer1 CompareA Handler
jmp RESET ; TIM1_COMPB Timer1 CompareB Handler
jmp RESET ; TIM1_OVF Timer1 Overflow Handler
jmp RESET ; TIM0_COMP Timer0 Compare Handler
jmp RESET ; TIM0_OVF Timer0 Overflow Handler
jmp RESET ; SPI_STC SPI Transfer Complete Handler
jmp RESET ; USART_RXC USART RX Complete Handler
jmp RESET ; USART_UDRE UDR Empty Handler
jmp RESET ; USART_TXC USART TX Complete Handler
jmp RESET ; ADC ADC Conversion Complete Handler
jmp RESET ; EE_RDY EEPROM Ready Handler
jmp RESET ; ANA_COMP Analog Comparator Handler
jmp RESET ; TWI Two-wire Serial Interface Handler
jmp RESET ; SPM_RDY Store Program Memory Ready Handler
;
; Initialization after power on (reset)
;
RESET:
;
; Do not allow any interrupt
;
cli
;
; Stop any Counter
;
ldi temp1, 0
out TIFR, temp1
;
; Set stack pointer
;
ldi temp1,HIGH(RAMEND) ; Set Stack Pointer to top of RAMEND
out SPH,temp1
ldi temp1,LOW(RAMEND)
out SPL,temp1
;
; Initiate LEDs
;
call Init_LED
sei
call Test_SDC
Loop:
nop
jmp Loop
;
; ---------------------------------------------------------
; Include here the SD Card Interface Subroutines
; ---------------------------------------------------------
.include "Indoor-SDCard.asm"
; ---------------------------------------------------------
; Include here the LED Interface Subroutines
; ---------------------------------------------------------
.include "Indoor-LED.asm"
; ---------------------------------------------------------
; Include here the Test SD Card Interface Subroutines
; ---------------------------------------------------------
.include "Test-SDCard.asm"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -