1. LED
·
b. 임베디드/MSP430G2553
MSP430G2553에 GPIO PIN은 그냥 몇개 포진되어 있는데 그중에 P1.0 에 연결되어 있는 LED를 제어 해보려고 한다. Clock이니 뭐니는 일단 뒤로 미뤄놓고 (실제로는 매우 중요하다...)GPIO만 데이트시트에서 찾아보면 다음과 같이 몇가지 레지스터가 있다.이 레지스터를 코드에서 설정하면 GPIO 제어가 가능하다..   위 두개의 레지스터만 이용하면 일단 LED는 켜지고 꺼지는 부분은 확인 할 수 있다.그럼 코드를 보자.#include int main(void){ WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer P1DIR |= 0x01; while(1) { P1OUT |= 0x01; }} 굉장히 단순히 LED를 켜지도록 만들어 놓은 코드이다..
MSP430 환경 설정 구성
·
b. 임베디드/MSP430G2553
MCU MSP430시리즈를 처음 사용하는데 환경을 일단 구성해봤다.좋은점은 일단 TI에서 IDE를 제공하니 환경 구성이 매우 간단하다. 홈페이지 들어가서 IDE를 다운로드 하고 설치만 하면 끝!CCSTUDIO IDE, configuration, compiler or debugger | TI.com 본인 환경에 맞게 다운로드 후 설치하면 된다. 설치 중간에 MSP430 시리즈를 선택해야 하는 부분이 있으니 꼭 체크하기 바란다.다른 시리즈도 사용할 예정이라면 미리 설치하는 것도...ㅎㅎ   그럼 이제 한번 시작해보자.
[아두이노] nrf24l01 RF통신 모듈 사용하기
·
b. 임베디드/아두이노
nRF24L01을 이용해서 1:1 통신을 사용해보도록 하겠습니다. 먼저 모듈 상태를 봐야합니다. 모양이 서로 상이한 모듈을 사용했는데 진행하는데 있어서 문제는 없었습니다. 다음은 사용한 모듈입니다. NRF24L01 RF Board (B) - Waveshare Wiki NRF24L01 RF Board (B) - Waveshare Wiki NRF24L01 RF Board (B) Wireless 2.4G solution for SPI interface, horizontal pinheaders Primary Attribute Category: Modules, RF {{{userDefinedInfo}}}: {{{userdefinedvalue}}} Brand: Waveshare Onboard Interfaces I..
[R5F1026A-TB] Input 테스트
·
b. 임베디드/R5F1026A-TB
R5F1026A에는 Input 전용 Port가 있습니다. 데이터시트를 살펴보니 P137의 경우 Input과 INTP0 타입으로 동작이 되는 것을 확인 가능합니다. INTP0은 외부 인터럽트로 사용되는 부분임으로 별도 정리할 필요가 있어보입니다. 사용방법은 P13의 7번 bit를 읽어서 사용이 가능할 듯 합니다. 먼저 설정방법은 간단합니다. Unused로 설정되어 있는 체크를 In으로 변경하였습니다. 그리고 단순 버튼 눌림을 확인할 것이므로 별도 설정은 Pass합니다. 다음은 샘플 코드입니다. /***********************************************************************************************************************..
[R5F1026A-TB] millis() 함수 만들기
·
b. 임베디드/R5F1026A-TB
먼저 블럭다이어그램을 통해서 타이머 종류를 살펴봅니다. 16bit타이머인 TAU0 - 4채널, 와치독 타이머, 12bit interval timer가 보입니다. 기본타이머인 16bit 타이머 TAU0 0채널을 사용하여 millis()함수를 만들어 보겠습니다. 프로젝트를 생성 후 Code Generator란에서 Timer를 선택하면 다음과 같은 메뉴가 나옵니다. 타이머 모드가 몇가지 존재하는데 간단하게 채널 0번을 Interval timer로 설정 하였습니다. 1ms Interval value를 설정합니다. 타이머 인터럽트를 사용할 것이므로 하단의 Generates INTTM00을 체크합니다. Reflect in PIN 및 Generates Code를 클릭하면 다음과 같이 파일이 생성됩니다. 저의 경우 W..
[R5F1026A-TB] 사용할 모듈 및 환경 설정 살펴보기
·
b. 임베디드/R5F1026A-TB
Renesas를 사용하려면 두가지 중에 하나를 선택해야 합니다. 사실상 자료가 많지 않아서 어려움이 꽤 많았습니다. 통합환경으로 e2studio를 처음에 사용했는데 R5F1026 16bit의 경우 e2studio를 통해서 GCC 및 기타 컴파일러를 변경하면서 시도해봤지만 동작하지 않았습니다....ㅜ (아시는분 알려주시면 감사하겠습니다.) 결국 시도한 것은 CS+ 프로그램으로 개발환경을 변경하였습니다. CS+ 다운로드 https://www.renesas.com/us/en/software-tool/cs 다운로드 프로그램 : Renesas Flash Programmer https://www.renesas.com/us/en/software-tool/renesas-flash-programmer-programmin..
[ATtiny1616] 소프트웨어 리셋(Reset) 사용하기
·
b. 임베디드/AVR
ATtiny1616에서 소프트웨어 적으로 리셋을 사용해보겠습니다. 데이터시트를 찾아보니 Reset 방식이 6개가 존재합니다. 이번에 사용할 기능은 소프트웨어 리셋 (Software Reset)입니다. 사실상 리셋에 관련된 레지스터가 2개뿐이라 사용법은 간단합니다. RSTFR은 어떤 리셋이 되었는지 확인할 수 있는 Flag형태의 레지스터입니다. 해당 bit는 각 6개 기능에 해당하는 리셋이 발생할 때 발생합니다. 해당 bit가 Set됩니다. SWRR은 Software reset을 발생시키는 레지스터입니다. 코드는 다음과 같습니다. static void resetToBoot(void) { _PROTECTED_WRITE(RSTCTRL.SWRR, RSTCTRL_SWRE_bm); }
[ATtiny1616] Watchdog 사용하기
·
b. 임베디드/AVR
ATtiny1616에 있는 와치독 특징을 보겠습니다. 1. 8ms ~ 8s까지 와치독 시간 설정이 가능합니다. 2. 모드는 Normal 모드랑 Window 모드가 있습니다. 다음은 블럭다이어 그램입니다. 클럭은 CLK_WDT로 사용하고 CTRLA로 설정 및 동작 시키는 것을 확인 가능합니다. 다음은 소스코드입니다. int main(void) { uint32_t pre_time; deviceInit(); _PROTECTED_WRITE(WDT_CTRLA, WDT_PERIOD_1KCLK_gc);// 와치독 Set sei(); pre_time = millis(); while (1) { _PROTECTED_WRITE(WDT_CTRLA, WDT_PERIOD_1KCLK_gc);// 와치독 Clear appRun();..
[ATtiny1616] TCA 타이머 사용하기
·
b. 임베디드/AVR
먼저 TCA 타이머 특징 리스트입니다. 16비트 타이머인데 Split Mode로 2개의 8비트 타이머를 사용할 수 있다는게 신기하네요 다음은 TCA타이머 블럭다이어그램입니다. TCB와 마찬가지로 CTRLA와 CTRLB로 클럭 및 모드 설정하는 것이 유추됩니다. 다음은 클럭 로직입니다. CLK_PER = 메인클럭을 사용한다는 것을 확인할 수 있습니다. 저는 Normal 모드를 사용하고 Overflow 인터럽트를 이용해보겠습니다. void timerInit(void) { // OVF Interrupt FREQUENCY = PER / (SystemClock / Prescaler) = SEC TCA0.SINGLE.PER = (1000*(F_CPU/1000000)) - 1; TCA0.SINGLE.CTRLA = (1
로봇쟁이
'b. 임베디드' 카테고리의 글 목록