Thanks for the replied. I am using an 18F2550 @ 48MHz. I want to choose baud rate based on 4 external jumpers.
When i dont have the DEFINEs I get the following warning:
Warning[202] \PBP\PBPPIC18.LIB 7605 : arguement out of range. least significant bits used.
Here's my code:
Code:
Define OSC 48
ADCON0=0
ADCON1=$0F
TRISB=$FF
INTCON2.7=0 ' Turn on weak pull ups on port B
baud VAR BYTE
baud=PORTB&%00111100
RCSTA = $90 ' Enable serial port & continuous receive
SELECT CASE baud
CASE 60
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 15 ' 300 Baud @ 48MHz, 0.0%
SPBRGH = 39
CASE 28
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 135 ' 600 Baud @ 48MHz, 0.0%
SPBRGH = 19
CASE 44
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 195 ' 1200 Baud @ 48MHz, 0.0%
SPBRGH = 9
CASE 12
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 225 ' 2400 Baud @ 48MHz, 0.0%
SPBRGH = 4
CASE 52
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 112 ' 4800 Baud @ 48MHz, 0.0%
SPBRGH = 2
CASE 20
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 225 ' 9600 Baud @ 48MHz, 0.0%
SPBRGH = 4
CASE 36
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 112 ' 19200 Baud @ 48MHz, 0.0%
SPBRGH = 2
CASE 4
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 56 ' 38400 Baud @ 48MHz, -0.16%
SPBRGH = 1
CASE 56
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 51 ' 57600 Baud @ 48MHz, 0.16%
SPBRGH = 0
CASE 24
TXSTA = $20 ' Enable transmit, BRGH = 0
SPBRG = 25 ' 115200 Baud @ 48MHz, 0.16%
SPBRGH = 0
CASE ELSE
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 225 ' 9600 Baud @ 48MHz, 0.0%
SPBRGH = 4
END SELECT
BAUDCON.3 = 1 ' Enable 16 bit baudrate generator
HSEROUT ["Hello World!"]
If I put in the DEFINES, or if I remove the HSEROUT line, the warning goes away.
Bookmarks