Nol.A SDK Library
24.7.1
For IoT System Software Development
|
Texas Instruments MSP430x5 MCU. More...
#include <McuMSP430x5.hpp>
Public Types | |
enum | { RESET_REASON_BOR = 0x02 , RESET_REASON_BOR_RST_NMI = 0x04 , RESET_REASON_BOR_PMMSWBOR = 0x06 , RESET_REASON_BOR_WAKEUP_FROM_LPMx5 = 0x08 , RESET_REASON_BOR_SECURITY_VIOLATION = 0x0A , RESET_REASON_POR_SVSL = 0x0C , RESET_REASON_POR_SVSH = 0x0E , RESET_REASON_POR_SVML_OVP = 0x10 , RESET_REASON_POR_SVMH_OVP = 0x12 , RESET_REASON_POR_PMMSWPOR = 0x14 , RESET_REASON_PUC_WDT_TIMEOUT = 0x16 , RESET_REASON_PUC_WDT_PASSWORD_VIOLATION = 0x18 , RESET_REASON_PUC_FLASH_PASSWORD_VIOLATION = 0x1A , RESET_REASON_PUC_PERF = 0x1E , RESET_REASON_PUC_PMM_PASSWORD_VIOLATION = 0x20 } |
enum | AdcReference_t { VREF_INTERNALVCC = 0 , VREF_INTERNAL2V5 = 1 , VREF_INTERNAL2V = 2 , VREF_INTERNAL1V5 = 3 , VREF_EXTERNALPos = 4 , VREF_INTERNALVCC_EXTERNALNeg = 5 , VREF_INTERNAL2V5_EXTERNALNeg = 6 , VREF_INTERNAL2V_EXTERNALNeg = 7 , VREF_INTERNAL1V5_EXTERNALNeg = 8 , VREF_EXTERNALPos_EXTERNALNeg = 9 , VREF_DEFAULT = 1 , VREF_INTERNAL = 1 , VREF_EXTERNAL = 4 } |
ADC (analogRead()) 기준 전압 More... | |
Public Member Functions | |
McuMSP430x5 (uint32_t clockHz) | |
void | feedWatchdog () override |
Watchdog reset을 방지하기 위하여 watchdog에 신호를 줍니다. More... | |
uint16_t | getSystickCount () |
void | waitSystick (uint16_t startCycle, uint16_t numCycle) |
uint32_t | MicrosToSystick (uint32_t usec) override |
uint32_t | SystickToMicros (uint32_t ticks) override |
void | getTimeSinceBoot (struct timeval *tv) override |
보드 부팅 이후부터 현재까지의 경과 시간을 구합니다. More... | |
uint8_t | getResetReason () |
마지막으로 리셋된 원인을 가져옵니다. More... | |
Public Member Functions inherited from McuGeneric | |
McuGeneric (uint32_t clockHz, uint32_t systickHz, uint32_t maxSystickCount) | |
Public Member Functions inherited from RTCCalendar | |
void | getDateTime (struct tm &t) |
현재 로컬 시간을 가져옵니다. More... | |
time_t | getDateTime () |
현재 로컬 시간을 가져옵니다. More... | |
void | getUTC (struct tm &t) |
현재 UTC 시간을 가져옵니다. More... | |
time_t | getUTC () |
현재 UTC 시간을 가져옵니다. More... | |
void | setDateTime (struct tm &t) |
현재 로컬 시간을 설정합니다. More... | |
void | setDateTime (time_t t) |
현재 로컬 시간을 설정합니다. More... | |
void | setUTC (struct tm &t) |
현재 UTC 시간을 설정합니다. More... | |
void | setUTC (time_t t) |
현재 UTC 시간을 설정합니다. More... | |
void | setDateTimeAlarm (struct tm &t) |
현재 로컬 시간을 기준으로 알람을 설정합니다. More... | |
void | setDateTimeAlarm (time_t t) |
현재 로컬 시간을 기준으로 알람을 설정합니다. More... | |
error_t | setTimeAlarm (uint8_t hour, uint8_t min, uint8_t sec=0) |
현재 로컬 시간을 기준으로 알람을 설정합니다. More... | |
void | onDateTimeAlarm (void(*func)()) |
알람 발생시 호출될 콜백함수를 지정합니다. More... | |
void | setTimeDiff (int16_t diffMinutes) |
UTC와 로컬 시간과의 차이를 분 단위로 지정합니다. More... | |
int16_t | getTimeDiff () |
UTC와 로컬 시간과의 차이를 반환합니다. More... | |
virtual void | signalAlarm () |
Protected Member Functions | |
void | initialize () override |
void | sleep () override |
void | clockInit () |
void | getUTCFromHardware (uint16_t *year, uint8_t *month, uint8_t *day, uint8_t *hour, uint8_t *min, uint8_t *sec, uint32_t *subsec=NULL) |
void | setUTCToHardware (uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t min, uint8_t sec, int32_t subsec=0) |
void | setUTCAlarmToHardware (uint8_t hour, uint8_t min, uint8_t sec) |
Protected Member Functions inherited from McuGeneric | |
virtual void | wakeup () |
Protected Attributes | |
struct timeval | bootTime |
Protected Attributes inherited from RTCCalendar | |
void(* | handlerAlarm )() |
Additional Inherited Members | |
Public Attributes inherited from McuGeneric | |
const uint32_t | CLOCK_HZ |
CPU clock frequency in unit of Hz. | |
const uint32_t | SYSTICK_HZ |
System tick frequency in unit of Hz. | |
const uint32_t | MAX_SYSTICK_COUNT |
Maximum value of systick counter. | |
bool | useSleep = true |
true 이면 MCU가 유휴(idle) 상태일 때 저전력을 위하여 sleep 합니다. More... | |
Texas Instruments MSP430x5 MCU.
ADC (analogRead()) 기준 전압
Enumerator | |
---|---|
VREF_INTERNALVCC | VR+=AVCC, VR-=AVSS |
VREF_INTERNAL2V5 | VR+=2.5V, VR-=AVSS |
VREF_INTERNAL2V | VR+=2.0V, VR-=AVSS |
VREF_INTERNAL1V5 | VR+=1.5V, VR-=AVSS |
VREF_EXTERNALPos | VR+=VeREF+, VR-=AVSS |
VREF_INTERNALVCC_EXTERNALNeg | VR+=AVCC, VR-=VREF-/VeREF- |
VREF_INTERNAL2V5_EXTERNALNeg | VR+=2.5V, VR-=VREF-/VeREF- |
VREF_INTERNAL2V_EXTERNALNeg | VR+=2.0V, VR-=VREF-/VeREF- |
VREF_INTERNAL1V5_EXTERNALNeg | VR+=1.5V, VR-=VREF-/VeREF- |
VREF_EXTERNALPos_EXTERNALNeg | VR+=VeREF+, VR-=VREF-/VeREF- |
VREF_DEFAULT | Default: VREF_INTERNAL2V5 |
VREF_INTERNAL | Internal default: VREF_INTERNAL2V5 |
VREF_EXTERNAL | External default: VREF_EXTERNALPos |
|
overridevirtual |
Watchdog reset을 방지하기 위하여 watchdog에 신호를 줍니다.
Nol.A-SDK에서는 특정 태스크의 MCU 점유 시간이 길어지는 경우 watchdog reset이 발생합니다. 따라서 postTask(), Timer 등으로 실행되는 태스크의 실행시간은 가능한 짧아야 합니다. 하지만, 간혹 busy wait를 해야 하거나 blocking 함수로 인해 실행시간이 길어질 수 있습니다. 이 경우 태스크의 중간 중간마다 이 함수를 호출하여 watchdog reset이 발생하는 것을 방지할 수 있습니다.
Implements McuGeneric.
uint8_t McuMSP430x5::getResetReason | ( | ) |
마지막으로 리셋된 원인을 가져옵니다.
마지막으로 보드가 리셋된 원인을 반환합니다. 원인이 둘 이상인 경우, OR 된 값이 반환됩니다.
리셋 원인에 대한 자세한 정보는 MSP430x5xx and MSP430x6xx Family User Guide (slau208p)의 1.2 System Reset and Initialization을 참고하시기 바랍니다.
|
overridevirtual |