sätta upp intern oscillator PIC16f18326
Postat: 16 augusti 2019, 11:28:51
Har försökt sätta upp den interna oscillatorn till 16MHz och kontrollerar detta genom att mäta en EN pinne. Dessa skall ju vara höga 100ms sen låga 100ms. Men hur jag än ställer det så är den 50ms hög och 50ms låg. Har aldrig använt detta chip förut och dess klocka är inte riktigt som jag är van vid att se.
Vad kan jag testa.
datablad->
http://ww1.microchip.com/downloads/en/d ... 01839b.pdf
Vad kan jag testa.
datablad->
http://ww1.microchip.com/downloads/en/d ... 01839b.pdf
Kod: Markera allt
#include "SSD1306driver_lite.h" // include SSD1306 OLED display driver source code
#define VFB5 PORTA.F5
#define TEMP PORTA.F4
#define BTN PORTC.F5
#define OUT PORTC.F4
#define ADC4 PORTC.F6
#define EN4 PORTC.F7
#define ADC3 PORTB.F6
#define EN3 PORTB.F4
#define ADC2 PORTC.F2
#define EN2 PORTC.F1
#define ADC1 PORTC.F0
#define EN1 PORTA.F2
char txt[11];
Init_main(){
OSCCON1=0B00000000;
OSCFRQ=0b00000110; // set internal oscillator to 16MHz
OSCTUNE=0B00000000;
ANSELA=0b00110000; // configure all PORTS
ANSELB=0b01000000;
ANSELC=0b01000101;
TRISA=0b01000000;
TRISB=0b01000000;
TRISC=0b01100101;
delay_ms(1000); // wait a second
I2C2_Init(400000); // initialize I2C communication with clock frequency of 400kHz
EN1=1;
EN2=1;
EN3=1;
EN4=1;
}
// main function
void main(){
Init_main();
while(1){
EN1=1;
EN2=1;
EN3=1;
EN4=1;
delay_ms(100);
EN1=0;
EN2=0;
EN3=0;
EN4=0;
delay_ms(100);
}
}