본문 바로가기

MPLAB 에 문제가 생겼을 경우 복구 하는 방법 PIC를 이용해서 코딩하는 경우 MPLAB IDE를 사용한다. 그런데 이 MPLAB이 참 모시기하다. 컴파일 시간이 짧고, 프로그래밍이 3초면 된다는 장점은 있지만. 실제 개발 시에는 매우 불편한 프로그램이다. (소스 인사이트 강추) 더 큰 문제는 가끔씩 뻑이나서 켜지지도 않는다는 것이다. 이 경우 처음부터 다시 까는 것 보다 간단한 방법으로 복구를 할 수 있다. 위의 경로에 있는 파일을 실행하면 된다. 한 0,5초? 만에 검은 창이 켜졌다 꺼진다. 그런 된 것이다. 간단하다. 더보기
PIC32 - PWM PWM은 pulse with modulation의 약자이다. 아마; 아날로그 신호를 내보낼 수 없는 디지탈 회로의 특성상 (DAC는 많이 않다) 그 세기를 변화시켜야 하는 LED나 모터의 구동에서 쓰인다. pwm에는 주파수와 duty비 만 정해주면 되는데 이를 위해서는 먼저 그 개념을 알 필요가 있다. 주파수는 파형이 high low로 떨리는 정도를 뜻하고 듀티비는 하이로 유지되고 있는 정도를 뜻한다. 100%라면 계속 하이일테고 0%라면 계속 로우일 것이다. 개념 자체는 매우 간단하다. 이를 구현하기 위해서는 1. 타이머를 설정하고 2. 타이머를 Output Compare와 연동시키고 (주파수가 여기서 결정) 3. Max Count값을 설정한다. (듀티비는 = compare값 / Max값) Output.. 더보기
PIC32 - Input Capture Input Capture는 원래 다른 input간의 시간을 측정하는데 쓰인다. 예를 들면 주파수와 펄스 측정에 쓰인다. 하지만 그냥 edge에서 인터럽트를 발생하는 외부 인터럽트와 같이 쓸 수도있다. PIC32의 외부 인터럽트의 경우 외부 인터럽트는 edge-sensitive이기 때문에 모든 edge에서 인터럽트를 발생시킬 수 없다. NEC 방식을 사용하는 리모컨이나 incremental 인코더의 경우에는 모든 edge에서 인터럽트가 발생해야하기 때문에 Input Capture를 사용하면 쉽게 구현할 수 있다. Input Capture Control Registers ICxCON(x는 숫자) bit31-16 Reserved bit15 ON: Input Capture Module Enable bit 1: .. 더보기
PID 제어 제어에 쓰이는 PID 개념은 너무나 쉽기 때문에 설명하지 않겠다. 게인을 잡는 것은 너무 어렵기 때문에 그것도 설명하지 않겠다. 그냥 경험상 P게인 잡고, D게인 잡고, I게인 잡고, 다시 반복하면 된다. 스텝 리스펀스를 이용해서 잡으면 된다. 헤더 파일 typedef struct {float Ref; // Input: Reference input float Fdb; // Input: Feedback input float Err;// Variable: Error float ErrSum;// Variable: Error Sum float Kp;// Parameter: Proportional gain float Up;// Variable: Proportional output float Ui;// Variab.. 더보기