MCLR problem PIC12F629

Dobrý deň,
chcel by som sa spýtať, či niekto nemá skúsenosti s PicKit3 a PIC12F629. Jedná sa o to, že mi stále vypisuje, že je aktívny vnútorný oscilátor a MCLR a naozaj už neviem ako sa toho zbaviť. Chcem nastaviť MCLR ako vstup pre mikrospínač (aktívny v log1), aby mi prepínal režimy blikania LED, zaitaľ dvoch a časom ôsmich. Vôbec sa mi nedarí to naprogramovať a netuším, kde je chyba. Ďakujem za akékoľvek rady.

samotný program :

[code]
#include <htc.h>
#include <pic12f629.h>
#define _XTAL_FREQ 4000000
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-Up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)

void main()
{

CMCON = 0x07;
TRISIO = 0b000000;
GPIO = 0b000000;

while(1)
{ 
    while(1)
    {
        if(GP3=0)
            break;
        {
            __delay_ms(200);
            GP1=1;
            GP0=0;
            __delay_ms(200);
            GP1=0;
            GP0=1;
                            
        }
    }
    while(GP3=0)
        __delay_ms(10);
    GP3=1;
    while(1)
    {
        if(GP3=0)
            break;
        {
            __delay_ms(50);
            GP1=1;
            GP0=0;
            __delay_ms(50);
            GP1=0;
            GP0=1;
        }
    }
    while(GP3=0)
        __delay_ms(10);
    GP3=1;
    
} 

}[/code]

Máš blbě nastavený TRISIO - všechny tlapky máš nastavený jako výstupní.
TRISIO = 0b00001000; //Takhle je to dobre

V tom chyba nebude. RESET je jako IN pořád a TRISIO,3 je pouze ke čtení. Sice C neumím, ale interní oscilátor je _INTRC_OSC_NOCLKOUT a vypnutí resetu je _MCLRE_OFF, nedávno jsem to řešil a u toho to PIC je zajímavě napsaný INC soubor.

skúšal som napísať aj TRISIO = 0b00001000; a stále som na tom istom.

ako prvú vec mi vyhodí

Target has invalid calibration data (0x3f).

Zrejme niečo s konfiguračnými bitmi, ktoré sú hneď na začiatku.

potom mi vyhodí tabuľku , že oba oscilátory sú aktívne a tým pádom aj MCLR, to je najväčší problém, lebo ten chcem mať ako vstup a stále sa mi tam striedajú Log1 a Log0 čiže program sa ovláda sám. Robím to v Cčku, pretože ASM takmer vôbec neovládam, aj keď som z neho maturoval pred 13rokmi…
PK3.jpg

Jsi si vymazal kalibrační konstantu pro interní oscilátor.

Zadej v PICKIT3 konfigurační slovo 01D4 111010100

3FD4 treba dať kam presne? Lebo z toho som jeleň…

Configuration v PICKIT. Datasheet str 53

Je docela možný, že program funguje. MCLR jako GPIO,3 nemá pullup.

Jestli jsi si přepsal kalibrační konstantu, tak použij tohle: picprojects.org.uk/projects/recal/recal.htm
Taky se mi to kdysi přihodilo a zrovna jsem potřeboval trochu více přesnosti bez krystalu. Jinak doporučím načíst nový prázdný PIC a tu konstatntu si opsat a pak programovat. Já si ji poznačil dospodu PICu.

Vyzerá to tak, že sa problém odstránil prepojením Vdd a GP3 s 10kΩ rezistorom, zatiaľ to ide ako má… Reaguje na spínač a prehadzuje režimy, síce nie presne ako má, ale to doladím. Ďakujem za rady

Nikdy jsem se s tímhle problémem nesetkal. I když je pravda že jsem ho programoval jednoduchoučkým programátorem JDM na sériový port. Spolupracuje skvěle se sw ICprog. Podmínkou je, že výstupy sériového portu musí dát minimálně 20 mA. Taky se na čipu dají nastavit interní slabé odpory (asi 100 kOhm) z bází tranzistorů na Ucc. PicKit3 sice mám ale ještě jsem ho nepoužil. Nelíbí se mi dýchavičnost sw MPLAB který je nutno použít. Na assembler používám MPASM : google.cz/search?q=jdm+prog … 52&bih=539

Dobré je taky toto: To samé v modrém… google.cz/search?q=RCD+prog … 52&bih=539