forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
MCLR problem PIC12F629

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
Skyline35
Nováček
Nováček


Založen: 4.6.2016
Příspěvky: 4

PříspěvekZaslal: 16 červen 2016, 19:04    Předmět: MCLR problem PIC12F629 Citovat

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 :



#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;

}


}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Billy Bob Bean
Profesionál
Profesionál


Založen: 21.9.2009
Příspěvky: 254
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 16 červen 2016, 22:26    Předmět: Citovat

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

_________________
Stavím UPSky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
JohnBoss
Účastník
Účastník


Založen: 18.1.2016
Příspěvky: 19

PříspěvekZaslal: 17 červen 2016, 9:47    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Skyline35
Nováček
Nováček


Založen: 4.6.2016
Příspěvky: 4

PříspěvekZaslal: 17 červen 2016, 10:15    Předmět: Citovat

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



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
 Komentář:
 Velikost:  41.66 kB
 Zobrazeno:  4605 krát

PK3.jpg


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
JohnBoss
Účastník
Účastník


Založen: 18.1.2016
Příspěvky: 19

PříspěvekZaslal: 17 červen 2016, 10:40    Předmět: Citovat

Skyline35 napsal:

ako prvú vec mi vyhodí

Target has invalid calibration data (0x3f).


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

Zadej v PICKIT3 konfigurační slovo 01D4 111010100
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Skyline35
Nováček
Nováček


Založen: 4.6.2016
Příspěvky: 4

PříspěvekZaslal: 17 červen 2016, 10:50    Předmět: Citovat

3FD4 treba dať kam presne? Lebo z toho som jeleň...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
JohnBoss
Účastník
Účastník


Založen: 18.1.2016
Příspěvky: 19

PříspěvekZaslal: 17 červen 2016, 10:53    Předmět: Citovat

Configuration v PICKIT. Datasheet str 53

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



config.png
 Komentář:

Stáhnout
 Soubor:  config.png
 Velikost:  105.28 kB
 Staženo:  67 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Mikop
Profesionál
Profesionál


Založen: 22.2.2009
Příspěvky: 251

PříspěvekZaslal: 17 červen 2016, 14:40    Předmět: Citovat

Jestli jsi si přepsal kalibrační konstantu, tak použij tohle: http://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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Skyline35
Nováček
Nováček


Založen: 4.6.2016
Příspěvky: 4

PříspěvekZaslal: 17 červen 2016, 14:48    Předmět: Citovat

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
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
drajfus1
Anonymní





PříspěvekZaslal: 22 červen 2016, 18:40    Předmět: MCLR Citovat

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 : https://www.google.cz/search?q=jdm+programmer+schematic&client=ubuntu&hs=Cw7&channel=fs&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwjF3f6WhrzNAhWI7BQKHWCZAc8QsAQIIg&biw=1252&bih=539

Dobré je taky toto: To samé v modrém... https://www.google.cz/search?q=RCD+programmer&client=ubuntu&hs=Q97&channel=fs&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwjjvPydibzNAhXHSBQKHbq7D94QsAQIIg&biw=1252&bih=539
Návrat nahoru
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)