Look at LPC2100_INTSIO.zip (interrupt-driven sio example for philips
lpc2100 on the Keil Download Area. I used this as a model for my
design.
P.S., next time you try to post some code, try not to run it thru a
compactor (i.e., one statement after the other on the same line).
Barry
--- In lpc2000@yahoogroups.com, Sridhar gadda <sridhargadda@y...>
wrote:
>
> Hi,
>
> I want to use Ulink for downloading frimware as well as the µvision
(keil) debug serial window to diplay result. I can display the string
but not hex values.
>
> my code is
>
> #include <LPC21xx.H>#include <DebugIO.H>#include <stdio.h>void
init_serial(void){ PINSEL0 |= 0x00000005; U0LCR = 0x83; U0DLL =
16; /* 57600 Baud rate @ 15MHz VPB clock */ U0LCR = 0x03;}int
putchar (int ch) /* write character to
serail port */{ #ifdef DEBUG return (__dbg_putchar(ch)); #else if
(ch == '\n') { while(!(U0LSR & 0x20)); U0THR
= '\r'; } while (!(U0LSR & 0x20)); return (U0THR = ch); #endif}
int getchar (void) /* Read character from serial port */
{ #ifdef DEBUG return (__dbg_getkey()); #else while(!(U0LSR &
0x01)); return (U0RBR); #endif}void puthex (int hex){ if (hex >
9) putchar('A' + (hex-10)); else putchar('0' + hex);}void putstr
(char *p){ while(*p) { putchar (*p++); }}int main ()
{ #ifndef DEBUG init_serial(); #endifputstr("\n");putstr("\n The
value in hex is 0x");puthex((byte >> 4) & 0x0F); / byte = 8 bit
char value */puthex (byte & 0x0F);}
>
> I can see the result on Hyperterminal but on serial window of IDE.
I see only my srting The Value in hex is 0x and not hex values which
I want to display.
>
> where am I doing wrong.
>
> Please help me out.
>
> regards,
>
> Sridhar
> --------------------------------------------------------------------
--------------------------------------------------------------------
>
> Debug communication channel
> --------------------------------------------------------------------
--------------------------------------------------------------------
>
> #include "DebugIO.H"
>
> #define DBG_PUTCHAR __asm { /* Macro:
DBG_PUTCHAR */ \
> __asm CMP R0,#0x0A /* Check 'ch' for
LF */ \
> __asm BNE wwait /* Branch if not
LF */ \
> __asm wwait0: MRC p14,0,R1,c0,c0 /* Read DCC
Control */ \
> __asm TST R1,#0x02 /* Check W
bit */ \
> __asm BNE wwait0 /* Branch if W =
1 */ \
> __asm MOV R1,#0x0D /* Insert CR
Code */ \
> __asm MCR p14,0,R1,c1,c0 /* Write CR to
DCC */ \
> __asm wwait: MRC p14,0,R1,c0,c0 /* Read DCC
Control */ \
> __asm TST R1,#0x02 /* Check W
bit */ \
> __asm BNE wwait /* Branch if W =
1 */ \
> __asm MCR p14,0,R0,c1,c0 /* Write 'ch' to
DCC */ \
> }
> #define DBG_GETKEY __asm { /* Macro:
DBG_GETKEY */ \
> __asm rwait: MRC p14,0,R0,c0,c0 /* Read DCC
Control */ \
> __asm TST R0,#0x01 /* Check R
bit */ \
> __asm BEQ rwait /* Branch if R =
0 */ \
> __asm MRC p14,0,R0,c1,c0 /* Read from
DCC */ \
> }
> #define DBG_ISKEY __asm { /* Macro:
DBG_ISKEY */ \
> __asm rwait: MRC p14,0,R0,c0,c0 /* Read DCC
Control */ \
> __asm AND R0,R0,#0x01 /* Mask R
bit */ \
> }
> #define DBG_CR2LF __asm { /* Macro:
DBG_CR2LF */ \
> __asm CMP R0,#0x0D /* Check for
CR */ \
> __asm MOVEQ R0,#0x0A /* Replace CR with
LF */ \
> }
>
> // Write Character to Debug Channel
> int __dbg_putchar (int ch) __arm {
> DBG_PUTCHAR
> }
> // Read Character with echo from Debug Channel
> int __dbg_getchar (void) __arm {
> DBG_GETKEY
> DBG_CR2LF
> DBG_PUTCHAR
> }
> // Read Character from Debug Channel
> int __dbg_getkey (void) __arm {
> DBG_GETKEY
> }
> // Check if Character is available
> int __dgb_iskey (void) __arm {
> DBG_ISKEY
> }
>
> --------------------------------------------------------------------
--------------------------------------------------------------------
>
> thanks
>
> sridhar
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> [Non-text portions of this message have been removed]Message
Re: Debug Communication channel
2005-05-19 by javida13
Attachments
- No local attachments were found for this message.