test program for Silicon Laboratories Inc. Si5351A-B-GT I2C-PROGRAMMABLE ANY-FREQUENCY CMOS CLOCK GENERATOR

Dependencies:   Si5351A

Committer:
kenjiArai
Date:
Wed Aug 23 09:54:05 2017 +0000
Revision:
5:e32ef4b85317
Parent:
4:5981cf106502
on Mbed OS5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:d68f1e7f7f49 1 /*
kenjiArai 0:d68f1e7f7f49 2 * mbed Application program / Si5351A sample program
kenjiArai 0:d68f1e7f7f49 3 * tested on:
kenjiArai 0:d68f1e7f7f49 4 * ST Nucleo-F411RE & F401RE
kenjiArai 0:d68f1e7f7f49 5 * LPC1114FN28
kenjiArai 0:d68f1e7f7f49 6 *
kenjiArai 0:d68f1e7f7f49 7 * Copyright (c) 2016,'17 Kenji Arai / JH1PJL
kenjiArai 0:d68f1e7f7f49 8 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:d68f1e7f7f49 9 * http://mbed.org/users/kenjiArai/
kenjiArai 0:d68f1e7f7f49 10 * Created: December 28th, 2016
kenjiArai 4:5981cf106502 11 * Revised: January 7th, 2017
kenjiArai 0:d68f1e7f7f49 12 *
kenjiArai 0:d68f1e7f7f49 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
kenjiArai 0:d68f1e7f7f49 14 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
kenjiArai 0:d68f1e7f7f49 15 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
kenjiArai 0:d68f1e7f7f49 16 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:d68f1e7f7f49 17 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
kenjiArai 0:d68f1e7f7f49 18 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
kenjiArai 0:d68f1e7f7f49 19 * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:d68f1e7f7f49 20 */
kenjiArai 0:d68f1e7f7f49 21
kenjiArai 4:5981cf106502 22 // Definition -----------------------------------------------------------------
kenjiArai 0:d68f1e7f7f49 23 #define BAUD(x) pc.baud(x)
kenjiArai 0:d68f1e7f7f49 24 #define GETC(x) pc.getc(x)
kenjiArai 0:d68f1e7f7f49 25 #define PUTC(x) pc.putc(x)
kenjiArai 0:d68f1e7f7f49 26 #define PRINTF(...) pc.printf(__VA_ARGS__)
kenjiArai 0:d68f1e7f7f49 27 #define READABLE(x) pc.readable(x)
kenjiArai 0:d68f1e7f7f49 28
kenjiArai 0:d68f1e7f7f49 29 #define BAUD_RATE 9600
kenjiArai 0:d68f1e7f7f49 30
kenjiArai 5:e32ef4b85317 31 #if 1
kenjiArai 0:d68f1e7f7f49 32 #define INCREMENT // command 1,2,3 -> INCREMENT or TABLE_LOOK
kenjiArai 0:d68f1e7f7f49 33 #endif
kenjiArai 0:d68f1e7f7f49 34 #if !defined(INCREMENT)
kenjiArai 0:d68f1e7f7f49 35 #define TABLE_LOOK
kenjiArai 0:d68f1e7f7f49 36 #endif
kenjiArai 0:d68f1e7f7f49 37
kenjiArai 0:d68f1e7f7f49 38 // Object ---------------------------------------------------------------------
kenjiArai 0:d68f1e7f7f49 39
kenjiArai 0:d68f1e7f7f49 40 // RAM ------------------------------------------------------------------------
kenjiArai 0:d68f1e7f7f49 41 char linebuf[64];
kenjiArai 0:d68f1e7f7f49 42 int buf_size = sizeof(linebuf);
kenjiArai 0:d68f1e7f7f49 43
kenjiArai 0:d68f1e7f7f49 44 // ROM / Constant data --------------------------------------------------------
kenjiArai 0:d68f1e7f7f49 45 char *const opening_msg =
kenjiArai 0:d68f1e7f7f49 46 "Si5351 test program, created on UTC: "__DATE__"("__TIME__")";
kenjiArai 0:d68f1e7f7f49 47 char *const msg0 = "output: Please enter freq. ex 1230000";
kenjiArai 0:d68f1e7f7f49 48
kenjiArai 0:d68f1e7f7f49 49 // Function prototypes --------------------------------------------------------
kenjiArai 1:2b29f68043f7 50 void msg_hlp(void);
kenjiArai 1:2b29f68043f7 51 void test(uint8_t channel);
kenjiArai 0:d68f1e7f7f49 52 void test_si5351(void);
kenjiArai 1:2b29f68043f7 53 void special_command(void);
kenjiArai 0:d68f1e7f7f49 54 void put_rn( void );
kenjiArai 0:d68f1e7f7f49 55 void put_r( void );
kenjiArai 0:d68f1e7f7f49 56 void put_lin( void );
kenjiArai 0:d68f1e7f7f49 57 void put_spc( uint8_t n);
kenjiArai 0:d68f1e7f7f49 58 int xatoi(char **str, int32_t *res);
kenjiArai 0:d68f1e7f7f49 59 void get_line(char *buff, int len);
kenjiArai 0:d68f1e7f7f49 60 void get_line_no_param(char *buff);
kenjiArai 5:e32ef4b85317 61 void delay(int32_t time);