Line No. | Rev | Author | Line |
---|---|---|---|
1 | 6 | kaklik | //***************************************************************************** |
2 | // File Name : rprintftest.c |
||
3 | // |
||
4 | // Title : example usage of rprintf library functions |
||
5 | // Revision : 1.0 |
||
6 | // Notes : |
||
7 | // Target MCU : Atmel AVR series |
||
8 | // Editor Tabs : 4 |
||
9 | // |
||
10 | // Revision History: |
||
11 | // When Who Description of change |
||
12 | // ----------- ----------- ----------------------- |
||
13 | // 10-Sep-2002 pstang Created the program |
||
14 | //***************************************************************************** |
||
15 | |||
16 | |||
17 | //----- Include Files --------------------------------------------------------- |
||
18 | #include <avr/io.h> // include I/O definitions (port names, pin names, etc) |
||
19 | #include <avr/interrupt.h> // include interrupt support |
||
20 | |||
21 | #include "global.h" // include our global settings |
||
22 | #include "uart.h" // include uart function library |
||
23 | #include "rprintf.h" // include printf function library |
||
24 | #include "timer.h" // include timer function library (timing, PWM, etc) |
||
25 | #include "vt100.h" // include VT100 terminal support |
||
26 | |||
27 | void rprintfTest(void); |
||
28 | |||
29 | //----- Begin Code ------------------------------------------------------------ |
||
30 | int main(void) |
||
31 | { |
||
32 | // initialize our libraries |
||
33 | // initialize the UART (serial port) |
||
34 | uartInit(); |
||
35 | // set the baud rate of the UART for our debug/reporting output |
||
36 | uartSetBaudRate(9600); |
||
37 | // initialize the timer system |
||
38 | timerInit(); |
||
39 | |||
40 | // initialize rprintf system |
||
41 | // - use uartSendByte as the output for all rprintf statements |
||
42 | // this will cause all rprintf library functions to direct their |
||
43 | // output to the uart |
||
44 | // - rprintf can be made to output to any device which takes characters. |
||
45 | // You must write a function which takes an unsigned char as an argument |
||
46 | // and then pass this to rprintfInit like this: rprintfInit(YOUR_FUNCTION); |
||
47 | rprintfInit(uartSendByte); |
||
48 | |||
49 | // initialize vt100 library |
||
50 | vt100Init(); |
||
51 | |||
52 | // clear the terminal screen |
||
53 | vt100ClearScreen(); |
||
54 | |||
55 | // run the test |
||
56 | rprintfTest(); |
||
57 | |||
58 | return 0; |
||
59 | } |
||
60 | |||
61 | void rprintfTest(void) |
||
62 | { |
||
63 | u16 val; |
||
64 | u08 mydata; |
||
65 | u08 mystring[10]; |
||
66 | float b; |
||
67 | u08 small; |
||
68 | u16 medium; |
||
69 | u32 big; |
||
70 | |||
71 | // print a little intro message so we know things are working |
||
72 | rprintf("\r\nThis is my cool program!\r\n"); |
||
73 | |||
74 | |||
75 | rprintf("\r\nWelcome to rprintf Test!\r\n"); |
||
76 | |||
77 | // print single characters |
||
78 | rprintfChar('H'); |
||
79 | rprintfChar('e'); |
||
80 | rprintfChar('l'); |
||
81 | rprintfChar('l'); |
||
82 | rprintfChar('o'); |
||
83 | // print a constant string stored in FLASH |
||
84 | rprintfProgStrM(" World!"); |
||
85 | // print a carriage return, line feed combination |
||
86 | rprintfCRLF(); |
||
87 | // note that using rprintfCRLF() is more memory-efficient than |
||
88 | // using rprintf("\r\n"), especially if you do it repeatedly |
||
89 | |||
90 | mystring[0] = 'A'; |
||
91 | mystring[1] = ' '; |
||
92 | mystring[2] = 'S'; |
||
93 | mystring[3] = 't'; |
||
94 | mystring[4] = 'r'; |
||
95 | mystring[5] = 'i'; |
||
96 | mystring[6] = 'n'; |
||
97 | mystring[7] = 'g'; |
||
98 | mystring[8] = '!'; |
||
99 | mystring[9] = 0; // null termination |
||
100 | |||
101 | // print a null-terminated string from RAM |
||
102 | rprintfStr(mystring); |
||
103 | rprintfCRLF(); |
||
104 | |||
105 | // print a section of a string from RAM |
||
106 | // - start at index 2 |
||
107 | // - print 6 characters |
||
108 | rprintfStrLen(mystring, 2, 6); |
||
109 | rprintfCRLF(); |
||
110 | |||
111 | |||
112 | val = 24060; |
||
113 | mydata = 'L'; |
||
114 | |||
115 | // print a decimal number |
||
116 | rprintf("This is a decimal number: %d\r\n", val); |
||
117 | |||
118 | // print a hex number |
||
119 | rprintf("This is a hex number: %x\r\n", mydata); |
||
120 | |||
121 | // print a character |
||
122 | rprintf("This is a character: %c\r\n", mydata); |
||
123 | |||
124 | // print hex numbers |
||
125 | small = 0x12; // a char |
||
126 | medium = 0x1234; // a short |
||
127 | big = 0x12345678; // a long |
||
128 | |||
129 | rprintf("This is a 2-digit hex number (char) : "); |
||
130 | rprintfu08(small); |
||
131 | rprintfCRLF(); |
||
132 | |||
133 | rprintf("This is a 4-digit hex number (short): "); |
||
134 | rprintfu16(medium); |
||
135 | rprintfCRLF(); |
||
136 | |||
137 | rprintf("This is a 8-digit hex number (long) : "); |
||
138 | rprintfu32(big); |
||
139 | rprintfCRLF(); |
||
140 | |||
141 | // print a formatted decimal number |
||
142 | // - use base 10 |
||
143 | // - use 8 characters |
||
144 | // - the number is signed [TRUE] |
||
145 | // - pad with '.' periods |
||
146 | rprintf("This is a formatted decimal number: "); |
||
147 | rprintfNum(10, 8, TRUE, '.', val); |
||
148 | rprintfCRLF(); |
||
149 | |||
150 | b = 1.23456; |
||
151 | |||
152 | // print a floating point number |
||
153 | // use 10-digit precision |
||
154 | |||
155 | // NOTE: TO USE rprintfFloat() YOU MUST ENABLE SUPPORT IN global.h |
||
156 | // use the following in your global.h: #define RPRINTF_FLOAT |
||
157 | |||
158 | //rprintf("This is a floating point number: "); |
||
159 | //rprintfFloat(8, b); |
||
160 | //rprintfCRLF(); |
||
161 | } |
||
162 |
Powered by WebSVN v2.8.3