Jag har precis startat med pic-programmering efter jag upptäckt att man nu mera kan knacka C till även mindre processorer.
Som första projekt så håller jag på med en IR-Förlängare eftersom det involverar få komponenter och jag fatiskt kan ha nytta av resultatet.
Nu har jag fått till 38kHz PWM, men mitt problem är att jag inte får ir-pulserna att registeras som input på RC5. Har förmodligen missuppfattat någonting enkelt och ber därför om hjälp. Om jag ger +Vdd med hjälp av bygel så får jag en fin diod, men ingenting via IR -Mottagaren.
Schema:

Kod:
Kod: Markera allt
/*
PIC16F690
/* STANDARD INCLUDES */
#include <stdio.h>
#include <stdlib.h>
#include <pic.h>
#include <string.h>
#include "delay.h"
/* CONFIGURATION MACRO */
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLRDIS & UNPROTECT & BORDIS & IESODIS & FCMDIS);
/* ------------------------------------ MAIN ----------------------------------------*/
/* MAIN APPLICATION */
void main (void)
{
INTCON=0; // disable the interrupts
PORTC = 0x00; // turn all PORTC off
// setup Timer0 for Clock
OPTION = 0b0000; // prescale by 2
T0IF = 0; // clear timer interrupt flag
T0IE = 1; // start timer interrupt
// setup PWM output to 38khz
CCP1CON=0;
TMR2=0;
PR2=0x18; // 38khz period
CCPR1L=0x09; // 50% duty cycle
TRISC = 0x11110000;
TRISA = 0b11111111;
TMR2ON=1;
// Enable Interrupts
PIE1 = 1;
PEIE = 1;
GIE = 1; // enable global interrupts
CCP1CON=0b00001100;
while(1){
if(RC5){
PSTRCON=0b00000000;
} else {
PSTRCON=0b00001100;
}
}
}