Start Coding (CCS-C)
Microcontroller를 사용하기 위하여 기본적으로 C 언어를 사용한다.
여기에서 C 언어에 대하여 설명하기에는 부족하여 꼭 필요한 몇가지 사항에 대하여 정리하였다.
여기에서 보여주는 내용은 꼭 이해하고 사용할 수 있도록 연습해야 한다.
#Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,PROTECT_5%
#Fuses: PROTECT_50%,NOPROTECT,NOBROWNOUT,BROWNOUT,LVP,NOLVP,CPD
#Fuses: NOCPD,WRT,NOWRT
이런 식으로 설정 하셔야 합니다.
-오실레이터 선정
: LP,XT,HS,RC 중에서 선정 하여야 함
-코드 프로텍트
: ROTECT,PROTECT_5%,PROTECT_50%,NOPROTECT 중에서 선택
-브라운 아웃 디텍터 기능
: NOBROWNOUT,BROWNOUT 중에서 선택. BROWN OUT 이란 전원 전압이 일정 전압 즉 4.0V 이하로 내려 가면 마이컴을 리셋 시키는 기능임
-와치-독 기능
: WDT,NOWDT 중에서 선택. 프로그램의 MUL-FUNCTION 을 방지 하기 위하여 사용
-파워-업 타이머 기능
: 전원을 투입 할때 전원 안정을 위하여 약 72MSEC 지연을
시키는 기능이 있는데 PUT,NOPUT 중에서 하나를 선택 하여야 함
-내부 EEPROM 읽기 PROTECT
: 마이컴 내부의 EEPROM 으로부터 읽기 프로텍트를 결정함
CPD,NOCPD 중에서 선택함
-저 전압 프로그래밍
: 플래시 마이컴을 5V에서 라이팅 할수 있는 기능으로 NOLVP,LVP 중에서 선택 하여야 한다
-TABLE WRITE 프로텍트
: WRT와 NOWRT 중에서 선택 하여야 하며 이기능은 프로그램 메모리 내의 TABLE 에 비 정상적인 데이터의 WRITE 를 방지 하는 기능이다
#FUSES XT,NOPROTECT,NOBROWNOUT,NOWDT,PUT,NOCPD,NOLVP,NOWRT
기본적으로 이렇게 설정 하셔서 테스트 해 주세요...
또한 기본적인 LCD 관련 소스 코드를 올립니다.
출처는 네오칩 자료실 입니다.
1)
2. Fuses? Explain for a beginner.
3. Configuration Bits (Fuses) For Microcontrollers
4. PICC fuses configuration 설정
5. Configuration 설정
6. CCS-C로 프로그래밍 하실 때 처음 Configuration 설정을 어떻게 하셨는지요?
.
.
1. 주석 (Manual p28 참고)
먼저 CCS-C로 프로그래밍 하실 때 처음 Configuration 설정을 어떻게 하셨는지요?//* **************************************************************************** // // 210801 Start Coding.C // // PIC16F18345 // // 2021/08/01 // //* **************************************************************************** #include <16f18345.h> #device ADC=10 #fuses HS,NOMCLR,NOPROTECT,NOBROWNOUT,NOWRT,PUT #use delay (clock = 20000000) //*** Declear Pin for UART Communication *************************************** #pin_select U1TX = PIN_B7 #pin_select U1RX = PIN_B5 #use rs232 (baud=19200, parity=N, xmit=PIN_B7, rcv=PIN_B5) #define SW_PIN PIN_A1 #define RD_SW input (SW_PIN) //****************************************************************************** //*** Start Main Function ****************************************************** void main (void) { int16 idx ; delay_ms (500) ; printf ("$#BL_100;") ; printf ("$#CLR_LCD;") ; printf ("$1,1,** AssistLab **;") ; while (1) { for (idx = 0;idx <= 100;idx++) { printf ("$1,2, No: %3ld;", idx) ; delay_ms (100) ; } } } //*** End Function ************************************************************* //******************************************************************************
#Fuses: LP,XT,HS,RC,NOWDT,WDT,NOPUT,PUT,PROTECT,PROTECT_5%
#Fuses: PROTECT_50%,NOPROTECT,NOBROWNOUT,BROWNOUT,LVP,NOLVP,CPD
#Fuses: NOCPD,WRT,NOWRT
이런 식으로 설정 하셔야 합니다.
-오실레이터 선정
: LP,XT,HS,RC 중에서 선정 하여야 함
-코드 프로텍트
: ROTECT,PROTECT_5%,PROTECT_50%,NOPROTECT 중에서 선택
-브라운 아웃 디텍터 기능
: NOBROWNOUT,BROWNOUT 중에서 선택. BROWN OUT 이란 전원 전압이 일정 전압 즉 4.0V 이하로 내려 가면 마이컴을 리셋 시키는 기능임
-와치-독 기능
: WDT,NOWDT 중에서 선택. 프로그램의 MUL-FUNCTION 을 방지 하기 위하여 사용
-파워-업 타이머 기능
: 전원을 투입 할때 전원 안정을 위하여 약 72MSEC 지연을
시키는 기능이 있는데 PUT,NOPUT 중에서 하나를 선택 하여야 함
-내부 EEPROM 읽기 PROTECT
: 마이컴 내부의 EEPROM 으로부터 읽기 프로텍트를 결정함
CPD,NOCPD 중에서 선택함
-저 전압 프로그래밍
: 플래시 마이컴을 5V에서 라이팅 할수 있는 기능으로 NOLVP,LVP 중에서 선택 하여야 한다
-TABLE WRITE 프로텍트
: WRT와 NOWRT 중에서 선택 하여야 하며 이기능은 프로그램 메모리 내의 TABLE 에 비 정상적인 데이터의 WRITE 를 방지 하는 기능이다
#FUSES XT,NOPROTECT,NOBROWNOUT,NOWDT,PUT,NOCPD,NOLVP,NOWRT
기본적으로 이렇게 설정 하셔서 테스트 해 주세요...
또한 기본적인 LCD 관련 소스 코드를 올립니다.
출처는 네오칩 자료실 입니다.
Type | Size | Unsigned | Signed |
int1 | 1 bit number | 0 to 1 | N/A |
int8 | 8 bit number | 0 to 255 | -128 to 127 |
int16 | 16 bit number | 0 to 65535 | -32768 to 32767 |
int32 | 32 bit number | 0 to 4294967295 | -2147483648 to 2147483647 |
int48 | 48 bit number | 0 to 281474976710655 | -140737488355328 to 140737488355327 |
int64 | 64 bit number | N/A | -9223372036854775808 to 9223372036854775807 |
float | 32 bit float | -1.5x10^45 to 3.4x10^38 | -1.5x10^45 to 3.4x10^38 |
4. 사용 문 (Manual p33 참고)
아래에 표현된 C-언어 구문은 가장 많이 사용하는 구문으로 매우 중요하기 떄문에1)
참고:
1. Device Configuration2. Fuses? Explain for a beginner.
3. Configuration Bits (Fuses) For Microcontrollers
4. PICC fuses configuration 설정
5. Configuration 설정
6. CCS-C로 프로그래밍 하실 때 처음 Configuration 설정을 어떻게 하셨는지요?
.
.