]> git.sur5r.net Git - freertos/blob - Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_board.c
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / MSP430X_MSP430F5438_IAR / MSP-EXP430F5438_HAL / hal_board.c
1 /**\r
2  * @file  hal_board.c\r
3  *\r
4  * Copyright 2010 Texas Instruments, Inc.\r
5 ******************************************************************************/\r
6 #include "msp430.h"\r
7 #include "hal_MSP-EXP430F5438.h"\r
8 \r
9 /**********************************************************************//**\r
10  * @brief  Initializes ACLK, MCLK, SMCLK outputs on P11.0, P11.1,\r
11  *         and P11.2, respectively.\r
12  *\r
13  * @param  none\r
14  *\r
15  * @return none\r
16  *************************************************************************/\r
17 void halBoardOutputSystemClock(void) //outputs clock to testpoints\r
18 {\r
19   CLK_PORT_DIR |= 0x07;\r
20   CLK_PORT_SEL |= 0x07;\r
21 }\r
22 \r
23 /**********************************************************************//**\r
24  * @brief  Stops the output of ACLK, MCLK, SMCLK on P11.0, P11.1, and P11.2.\r
25  *\r
26  * @param  none\r
27  *\r
28  * @return none\r
29  *************************************************************************/\r
30 void halBoardStopOutputSystemClock(void)\r
31 {\r
32   CLK_PORT_OUT &= ~0x07;\r
33   CLK_PORT_DIR |= 0x07; \r
34   CLK_PORT_SEL &= ~0x07;\r
35 }\r
36 \r
37 /**********************************************************************//**\r
38  * @brief  Initializes all GPIO configurations.\r
39  *\r
40  * @param  none\r
41  *\r
42  * @return none\r
43  *************************************************************************/\r
44 void halBoardInit(void)\r
45 {\r
46   //Tie unused ports\r
47   PAOUT  = 0;\r
48   PADIR  = 0xFFFF;\r
49   PASEL  = 0;\r
50   PBOUT  = 0;\r
51   PBDIR  = 0xFFFF;\r
52   PBSEL  = 0;\r
53   PCOUT  = 0;\r
54   PCDIR  = 0xFFFF;\r
55   PCSEL  = 0;\r
56   PDOUT  = 0;\r
57   PDDIR  = 0xFFFF;\r
58   PDSEL  = 0x0003;\r
59   PEOUT  = 0;\r
60   PEDIR  = 0xFEFF;                          // P10.0 to USB RST pin,\r
61                                             // ...if enabled with J5\r
62   PESEL  = 0;\r
63   P11OUT = 0;\r
64   P11DIR = 0xFF;\r
65   PJOUT  = 0;\r
66   PJDIR  = 0xFF;\r
67   P11SEL = 0;\r
68 }\r
69 \r
70 /**********************************************************************//**\r
71  * @brief  Set function for MCLK frequency.\r
72  *\r
73  *\r
74  * @return none\r
75  *************************************************************************/\r
76 void hal430SetSystemClock(unsigned long req_clock_rate, unsigned long ref_clock_rate)\r
77 {\r
78   /* Convert a Hz value to a KHz value, as required\r
79    *  by the Init_FLL_Settle() function. */\r
80   unsigned long ulCPU_Clock_KHz = req_clock_rate / 1000UL;\r
81 \r
82   //Make sure we aren't overclocking\r
83   if(ulCPU_Clock_KHz > 25000L)\r
84   {\r
85     ulCPU_Clock_KHz = 25000L;\r
86   }\r
87 \r
88   //Set VCore to a level sufficient for the requested clock speed.\r
89   if(ulCPU_Clock_KHz <= 8000L)\r
90   {\r
91     SetVCore(PMMCOREV_0);\r
92   }\r
93   else if(ulCPU_Clock_KHz <= 12000L)\r
94   {\r
95     SetVCore(PMMCOREV_1);\r
96   }\r
97   else if(ulCPU_Clock_KHz <= 20000L)\r
98   {\r
99     SetVCore(PMMCOREV_2);\r
100   }\r
101   else\r
102   {\r
103     SetVCore(PMMCOREV_3);\r
104   }\r
105 \r
106   //Set the DCO\r
107   Init_FLL_Settle( ( unsigned short )ulCPU_Clock_KHz, req_clock_rate / ref_clock_rate );\r
108 }\r