6.- Fare lavorare MPASM.
Solitamente occorre effettuare calcoli
relativi al clock o simili (baudrate, I2C clock, timing, ecc).
Qui posiamo inserire alcuni di questi calcoli e gli elementi
necessari alla loro esecuzione, in modo che MPASM
lavori per noi.
;====================================================================
;===========
General purpose definitions
============================
;====================================================================
; base frequency
XTAL_FREQ equ d'1000000' ;
OSC freq [ Hz]
CLOCK
equ
XTAL_FREQ/4
; processor clock [Hz]
TCYC
equ 1000000000/CLOCK ;
cycle time [ns]
; esempi di "calcolo atto fare" all' Assembler
; calculates baudrate when BRGH = 1, adjust for rounding errors
#define
CALC_HIGH_BAUD(BaudRate) (((10*XTAL_FREQ/(16*BaudRate))+5)/10)-1
; calculates baudrate when BRGH = 0, adjust for rounding errors
#define
CALC_LOW_BAUD(BaudRate) (((10*XTAL_FREQ/(64*BaudRate))+5)/10)-1
|
Si potranno poi definire costanti locali o altro specifico per l'
applicazione.
Ad esempio:
;============= LCD driver's
definitions and constants ===========
; The following definitions bypass the default values
CONSTANT
LCDBLIND = 0x00 ; use RW
;CONSTANT LCDBLIND = 0x01 ; don't use RW
;
LCDLINENUM = 0x02
;
2 or more lines
LCDCHRXLINE = d'16'
;
16 char per line
;
LCDTYPE = 0x00
;
440780 compatible
;LCDTYPE = 0x01
; KS0073
;
;LCDVOLT = d'3'
; power supply <5V
LCDVOLT = d'5'
; power supply 5V
|
La tecnica di scrivere linee
alternative e porle come commenti con il ; iniziale
è molto comoda perchè permette di effettuare modifiche semplicemente scambiano
il ; su un' altra linea di scelta, senza bisogno di consultare documentazioni.
|