본문 바로가기

[Microchip]

(132)
[PIC12F EVM] HI-TECH C컴파일러에서 Delay 함수 사용하기 [PIC12F EVM] HI-TECH C컴파일러에서 Delay 함수 사용하기 이전, "HI - TECH PICC - Lite"에는 예제로 delay.h, delay.c라는 프로그램이 포함되어 있었는데 업데이트 버전 "HI - TECH C PRO for the PIC10/12/16 MCU Family (Lite mode)" 는 이 파일이 없다. 예제를 보면 만 선언하고 사용하고 있는데 를 열어 보니 아래와 같이 선언되어 있다. #pragma inline(_delay) extern void _delay(unsigned long); // NOTE: To use the macros below, YOU must have previously defined _XTAL_FREQ #define __delay_us(x) ..
[PIC12F EVM] GPIO 제어시 주의사항 [PIC12F EVM] GPIO 제어시 주의사항 PIC12 시리즈중 PIC12F683의 각 포트는 ADC, GPIO, Comparator등의 여러 기능을 가지고 있으므로 사용하려면 각각 설정이 필요하다. 특히 GPIO로 사용하기 위해 ADC, Comparator 설정 레지스터로 Disable 해 주어야 한다. GPIO로 사용하기 위해 ADC를 Disale하는 ADSEL레지스터를 Clear하고, 입출력 방향을 설정하는 TRISIO레지스터 설정해야 한다. (0- Output, 1-Input). //----------------------------------------------------------------------------- // On board LED #define LED1_BIT BIT0 #de..
[PIC12F EVM] 무료컴파일러 HI-TECH C, MPLAB을 이용한 개발환경 설정 [PIC12F EVM] 무료컴파일러 HI-TECH C, MPLAB을 이용한 개발환경 설정 PIC12F 시리즈는 MPLAB설치시 무료로 설치되는 HI-TECH PCC컴파일러를 이용하면 C언어로 프로그램 할 수 있다. MPLAB Project Wizard를 이용하여 간단히 프로젝트 파일을 생성할 수 있다. PIC12F683 보드를 테스트 하는 예제를 작성 해보자. 컴파일러 옵션에서 HI-TECH C컴파일러를 설정한다. 적당한 프로젝트 명을 선택하고 저장하면 프로젝트 파일이 생성된다. 옵션으로 드라이버 파일의 경로를 설정할 수 있다. PIC12 개발환경 설정완료 컴파일 잘 된다. 8핀의 소형 MCU이지만 요즘은 소프트웨어 발전이 좋아 C언어로 쉽게 개발 할수 있어 저렴하고 편리하게 프로젝트를 진행 할수 있는것..
[dsPIC33] 리맵관련 자료 [dsPIC33] 리맵관련 자료 dsPIC33은 PPS기능을 제공해 Pin map을 PRx 핀에 원하는 형태로 설정(remap)할 수 있다. 입력과 출력에따라 설정 방법은 다르다. PPS제어를 위해서는 UNLOCK_PPS() 해서 설정하고, 설정후에는 LOCK_PPS() 를 해 주어야 한다. 입력핀일 경우 예를 들어 UART의 경우 RPINR18 레지스터에 입력 RP를 설정하면 된다. //U1RX를 RP20번 핀에 입력으로 연결 RPINR18bits.U1RXR = 20; or _U1RXR = 20; RPINR18은 UART레지 리맵 레지스터 이다. 출력핀일 경우 U1TX 입력은 3번이므로 3을 할당하면 된다. //RP19핀을 U1TX에 연결 _RP19R = 3;
[PIC32-SM EVM] GLCD 7565 테스트 [PIC32-SM EVM] GLCD 7565 테스트 [NET-EVM] 보드에는 GLCD 모듈을 연결할 수 있다. 핀맵이 동일하므로 여러가지 모듈이 가능한데 일단 ST7565드라이버로 테스트 해보자. 회로는 아래와 같다. 테스트 예제 코드는 config 파일의 HAL부분만 수정하면 나머지 코드는 수정없이 사용 가능하다. //----------------------------------------------------------------------------- //glcd 7565 LCD driver hal #define LCD_RDON() #define LCD_RDOFF() #define LCD_DAT BIT8 #define LCD_DAT1() Sbi(LATG, LCD_DAT) #define LCD_DA..
[PIC32-SM EVM] TFT LCD (COM26T2844) 테스트 - AVR과 속도 비교 [PIC32-SM EVM] TFT LCD (COM26T2844) 테스트 [EXP-NET EVM] 보드는 W5100을 연결하여 이더넷 테스트를 하기 위한 보드로 제작 했는데 TFT LCD모듈도 연결하여 테스트 가능하다. PIC32의 속도를 좀더 테스트 해 보기 위해 테스트 자료정리를 좀 해 보았다. 추후 PIC32의 USB호스트 기능을 테스트 하거나 이더넷 테스트를 진행할 예정이다. [EXP-NET EVM] 보드의 TFT LCD (COM26T2844)) 회로도 (한가지 아쉬운점이 있다면 RS신호를 RF4로 할당해야 하는데... 멀리 떨어져 있을뿐 아니라 16핀용 다른 MCU와 호환이 안된다. 다음에 화장보드 제작시에는 고려를 할 필요가 있을것 같다.) TFT LCD Driver 코드 //----------..
[PIC32 - SM EVM] UART 테스트 [PIC32 - SM EVM] UART 테스트 PIC32MX4에는 2개의 UART Port(RD2, RD3, RF4, RF5)가 있다. 보레이트설정 U1BRG레지스터에 계산값을 설정하면 된다. PIC24와 레지스터 및 구조가 거의 비슷하다. Seial.c에 있는 U0_GetByte(), U0_PutByte()를 수정해 주면 된다. unsigned char U0_GetByte(void) { unsigned char read_data; read_data = U1RXREG; U1STAbits.OERR = 0; return (read_data); } void U0_PutByte(unsigned char Data) { while(U1STAbits.UTXBF == 1); U1TXREG = Data; } PIC32 ..
[PIC32-SM EMV] Timer테스트 - 1초 만들기 [PIC32-SM EMV] Timer테스트 - 1초 만들기 PIC32 타이머 구조 PIC32는 총 5개의 타이머가 있고 타이머 1은 16비트 이고, 타이머 2~5는 32비트로 설정 가능하다. C32컴파일러를 이용하면 페리 관련 함수를 제공하기 때문에 설정하기는 상당히 편하다. 속도가 문제가 되지 않는 초기화 코드는 제공함수를 이용하는것이 좋을것 같다. TMR1 = 0; T1CON = 0x8030; // or TMR1bits.ON = 1; TMR1bits.TCKPS=3; PR1 = 0xFFFF; #include WriteTimer1( 0); OpenTimer1( T1_ON | T1_PS_1_256, 0xFFFF); PIC32 타이머 테스트 예제코드 1ms주기로 인터럽트 수행되고 1초가 되면(1000번 카운..

반응형