12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- #include "hal.h"
- /**
- * @brief PAL setup.
- * @details Digital I/O ports static configuration as defined in @p board.h.
- * This variable is used by the HAL when initializing the PAL driver.
- */
- #if HAL_USE_PAL || defined(__DOXYGEN__)
- const PALConfig pal_default_config =
- {
- #if defined(__MSP430_HAS_PORT1__) || defined(__MSP430_HAS_PORT1_R__)
- {VAL_P1OUT, VAL_P1DIR},
- #endif
- #if defined(__MSP430_HAS_PORT2__) || defined(__MSP430_HAS_PORT2_R__)
- {VAL_P2OUT, VAL_P2DIR},
- #endif
- #if defined(__MSP430_HAS_PORT3__) || defined(__MSP430_HAS_PORT3_R__)
- {VAL_P3OUT, VAL_P3DIR},
- #endif
- #if defined(__MSP430_HAS_PORT4__) || defined(__MSP430_HAS_PORT4_R__)
- {VAL_P4OUT, VAL_P4DIR},
- #endif
- #if defined(__MSP430_HAS_PORT5__) || defined(__MSP430_HAS_PORT5_R__)
- {VAL_P5OUT, VAL_P5DIR},
- #endif
- #if defined(__MSP430_HAS_PORT6__) || defined(__MSP430_HAS_PORT6_R__)
- {VAL_P6OUT, VAL_P6DIR},
- #endif
- };
- #endif
- CH_IRQ_HANDLER(TIMERA0) {
- CH_IRQ_PROLOGUE();
- chSysLockFromIsr();
- chSysTimerHandlerI();
- chSysUnlockFromIsr();
- CH_IRQ_EPILOGUE();
- }
- /*
- * Board-specific initialization code.
- */
- void boardInit(void) {
- #if USE_MSP430_USART0
- P3SEL |= (1 << 4) | (1 << 5);
- #endif
- #if USE_MSP430_USART1
- P3SEL |= (1 << 6) | (1 << 7);
- #endif
- /*
- * Timer 0 setup, uses SMCLK as source.
- */
- TACCR0 = SMCLK / 4 / CH_FREQUENCY - 1;/* Counter limit. */
- TACTL = TACLR; /* Clean start. */
- TACTL = TASSEL_2 | ID_2 | MC_1; /* Src=SMCLK, ID=4, cmp=TACCR0. */
- TACCTL0 = CCIE; /* Interrupt on compare. */
- }
|