PIC18F25K22 çalışmaması

Başlatan apsis, 26 Kasım 2016, 22:21:57

baran123

Harici OSC 16MHz için şu kod deneyebilirsin.
#include <xc.h>
#include <stdint.h>

#pragma config FOSC = HSMP    // Oscillator Selection bits->HS oscillator (medium power 4-16 MHz)
#pragma config PLLCFG = OFF    // 4X PLL Enable->Oscillator used directly
#pragma config PRICLKEN = ON    // Primary clock enable bit->Primary clock enabled
#pragma config FCMEN = OFF    // Fail-Safe Clock Monitor Enable bit->Fail-Safe Clock Monitor disabled
#pragma config IESO = OFF    // Internal/External Oscillator Switchover bit->Oscillator Switchover mode disabled

// CONFIG2L
#pragma config PWRTEN = OFF    // Power-up Timer Enable bit->Power up timer disabled
#pragma config BOREN = SBORDIS    // Brown-out Reset Enable bits->Brown-out Reset enabled in hardware only (SBOREN is disabled)
#pragma config BORV = 190    // Brown Out Reset Voltage bits->VBOR set to 1.90 V nominal

// CONFIG2H
#pragma config WDTEN = OFF    // Watchdog Timer Enable bits->Watch dog timer is always disabled. SWDTEN has no effect.
#pragma config WDTPS = 32768    // Watchdog Timer Postscale Select bits->1:32768

// CONFIG3H
#pragma config CCP2MX = PORTC1    // CCP2 MUX bit->CCP2 input/output is multiplexed with RC1
#pragma config PBADEN = ON    // PORTB A/D Enable bit->PORTB<5:0> pins are configured as analog input channels on Reset
#pragma config CCP3MX = PORTB5    // P3A/CCP3 Mux bit->P3A/CCP3 input/output is multiplexed with RB5
#pragma config HFOFST = ON    // HFINTOSC Fast Start-up->HFINTOSC output and ready status are not delayed by the oscillator stable status
#pragma config T3CMX = PORTC0    // Timer3 Clock input mux bit->T3CKI is on RC0
#pragma config P2BMX = PORTB5    // ECCP2 B output mux bit->P2B is on RB5
#pragma config MCLRE = EXTMCLR    // MCLR Pin Enable bit->MCLR pin enabled, RE3 input pin disabled

// CONFIG4L
#pragma config STVREN = ON    // Stack Full/Underflow Reset Enable bit->Stack full/underflow will cause Reset
#pragma config LVP = ON    // Single-Supply ICSP Enable bit->Single-Supply ICSP enabled if MCLRE is also 1
#pragma config XINST = OFF    // Extended Instruction Set Enable bit->Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#pragma config DEBUG = OFF    // Background Debug->Disabled

// CONFIG5L
#pragma config CP0 = OFF    // Code Protection Block 0->Block 0 (000800-001FFFh) not code-protected
#pragma config CP1 = OFF    // Code Protection Block 1->Block 1 (002000-003FFFh) not code-protected
#pragma config CP2 = OFF    // Code Protection Block 2->Block 2 (004000-005FFFh) not code-protected
#pragma config CP3 = OFF    // Code Protection Block 3->Block 3 (006000-007FFFh) not code-protected

// CONFIG5H
#pragma config CPB = OFF    // Boot Block Code Protection bit->Boot block (000000-0007FFh) not code-protected
#pragma config CPD = OFF    // Data EEPROM Code Protection bit->Data EEPROM not code-protected

// CONFIG6L
#pragma config WRT0 = OFF    // Write Protection Block 0->Block 0 (000800-001FFFh) not write-protected
#pragma config WRT1 = OFF    // Write Protection Block 1->Block 1 (002000-003FFFh) not write-protected
#pragma config WRT2 = OFF    // Write Protection Block 2->Block 2 (004000-005FFFh) not write-protected
#pragma config WRT3 = OFF    // Write Protection Block 3->Block 3 (006000-007FFFh) not write-protected

// CONFIG6H
#pragma config WRTC = OFF    // Configuration Register Write Protection bit->Configuration registers (300000-3000FFh) not write-protected
#pragma config WRTB = OFF    // Boot Block Write Protection bit->Boot Block (000000-0007FFh) not write-protected
#pragma config WRTD = OFF    // Data EEPROM Write Protection bit->Data EEPROM not write-protected

// CONFIG7L
#pragma config EBTR0 = OFF    // Table Read Protection Block 0->Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
#pragma config EBTR1 = OFF    // Table Read Protection Block 1->Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
#pragma config EBTR2 = OFF    // Table Read Protection Block 2->Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
#pragma config EBTR3 = OFF    // Table Read Protection Block 3->Block 3 (006000-007FFFh) not protected from table reads executed in other blocks

// CONFIG7H
#pragma config EBTRB = OFF    // Boot Block Table Read Protection bit->Boot Block (000000-0007FFh) not protected from table reads executed in other blocks

#define _XTAL_FREQ 16000000

void Delay_ms(uint16_t miliSecond)
{
    for (uint16_t i = 0; i < miliSecond; i++)
        __delay_ms(1);
}

void main(void)
{
    CM1CON0 = 0x00;
    CM2CON1 = 0x00;
    
    /* OSC Config */
    OSCCON = 0x30;
    OSCCON2 = 0x04; 
    OSCTUNE = 0x00;
    /* OSC Config */
    
    /* I/O Config */
    LATA = 0x00;    
    LATB = 0x00;    
    LATC = 0x00;    

    TRISA = 0xC0;
    TRISB = 0x00;
    TRISC = 0x00;

    ANSELB = 0x00;
    ANSELA = 0x00;
    ANSELC = 0x00;

    WPUB = 0x00;
    INTCON2bits.nRBPU = 0;
    /* I/O Config */
    
    while(1)
    {
        LATB0 = ~LATB0;
        Delay_ms(500);
    } 
}

apsis

"Makineye Beyin" MEKATRONİK

JOKERAS

#pragma config LVP = ON



Similasyonda çalışıp gerçek hayatta çalışmıyorsa
#pragma config LVP = OFF

Yapıp deneyin.Bu Low Voltaj Pgm modu.
Siz devrenizi çalıştırdığınızda İlgili Pgm pini havadan nem kapıp etkilenir.
Bu durum sistemin bazen çalışmasına bazen çalışmamasına,kararsızlık yapmasına neden olur.

apsis

#18
Hocam LVP=OFF ta. Şöylede birşey de var pickit ile program atarken lvp yi kapattığımda config verify error veriyor, açtığımda ise hata vermiyor. pickit3 ile attığımda böyle bir hata vermiyor. Artık İşlemciye program düzgün atılamadığından ya da işlemcinin kullanılmaz hale geldiğini düşünmeye başladım. Denemediğim program kalmadı. Kodun son hali aşağıda en son ne yaptığımı da hatırlamıyorum zaten :S
// PIC18F25K22 Configuration Bit Settings

// 'C' source line config statements

#include <xc.h>
#include <stdint.h>
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

// CONFIG1H
#pragma config FOSC = INTIO67      // Oscillator Selection bits (HS oscillator (medium power 4-16 MHz))
#pragma config PLLCFG = OFF      // 4X PLL Enable (Oscillator multiplied by 4)
#pragma config PRICLKEN = ON    // Primary clock enable bit (Primary clock enabled)
#pragma config FCMEN = ON      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
#pragma config IESO = OFF       // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled)

// CONFIG2L

#pragma config PWRTEN = OFF      // Power-up Timer Enable bit (Power up timer enabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable bits (Brown-out Reset disabled in hardware and software)
#pragma config BORV = 190       // Brown Out Reset Voltage bits (VBOR set to 1.90 V nominal)

// CONFIG2H
#pragma config WDTEN = OFF      // Watchdog Timer Enable bits (Watch dog timer is always disabled. SWDTEN has no effect.)
#pragma config WDTPS = 32768    // Watchdog Timer Postscale Select bits (1:32768)

// CONFIG3H
#pragma config CCP2MX = PORTC1  // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
#pragma config PBADEN = OFF     // PORTB A/D Enable bit (PORTB<5:0> pins are configured as digital I/O on Reset)
#pragma config CCP3MX = PORTB5  // P3A/CCP3 Mux bit (P3A/CCP3 input/output is multiplexed with RB5)
#pragma config HFOFST = OFF     // HFINTOSC Fast Start-up (HFINTOSC output and ready status are not delayed by the oscillator stable status)
#pragma config T3CMX = PORTC0   // Timer3 Clock input mux bit (T3CKI is on RC0)
#pragma config P2BMX = PORTB5   // ECCP2 B output mux bit (P2B is on RB5)
#pragma config MCLRE = EXTMCLR  // MCLR Pin Enable bit (MCLR pin enabled, RE3 input pin disabled)

// CONFIG4L
#pragma config STVREN = OFF      // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)
#pragma config LVP = OFF         // Single-Supply ICSP Enable bit (Single-Supply ICSP enabled if MCLRE is also 1)
#pragma config XINST = OFF      // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode disabled (Legacy mode))

// CONFIG5L
#pragma config CP0 = OFF        // Code Protection Block 0 (Block 0 (000800-001FFFh) not code-protected)
#pragma config CP1 = OFF        // Code Protection Block 1 (Block 1 (002000-003FFFh) not code-protected)
#pragma config CP2 = OFF        // Code Protection Block 2 (Block 2 (004000-005FFFh) not code-protected)
#pragma config CP3 = OFF        // Code Protection Block 3 (Block 3 (006000-007FFFh) not code-protected)

// CONFIG5H
#pragma config CPB = OFF        // Boot Block Code Protection bit (Boot block (000000-0007FFh) not code-protected)
#pragma config CPD = OFF        // Data EEPROM Code Protection bit (Data EEPROM not code-protected)

// CONFIG6L
#pragma config WRT0 = OFF       // Write Protection Block 0 (Block 0 (000800-001FFFh) not write-protected)
#pragma config WRT1 = OFF       // Write Protection Block 1 (Block 1 (002000-003FFFh) not write-protected)
#pragma config WRT2 = OFF       // Write Protection Block 2 (Block 2 (004000-005FFFh) not write-protected)
#pragma config WRT3 = OFF       // Write Protection Block 3 (Block 3 (006000-007FFFh) not write-protected)

// CONFIG6H
#pragma config WRTC = OFF       // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write-protected)
#pragma config WRTB = OFF       // Boot Block Write Protection bit (Boot Block (000000-0007FFh) not write-protected)
#pragma config WRTD = OFF       // Data EEPROM Write Protection bit (Data EEPROM not write-protected)

// CONFIG7L
#pragma config EBTR0 = OFF      // Table Read Protection Block 0 (Block 0 (000800-001FFFh) not protected from table reads executed in other blocks)
#pragma config EBTR1 = OFF      // Table Read Protection Block 1 (Block 1 (002000-003FFFh) not protected from table reads executed in other blocks)
#pragma config EBTR2 = OFF      // Table Read Protection Block 2 (Block 2 (004000-005FFFh) not protected from table reads executed in other blocks)
#pragma config EBTR3 = OFF      // Table Read Protection Block 3 (Block 3 (006000-007FFFh) not protected from table reads executed in other blocks)

// CONFIG7H
#pragma config EBTRB = OFF      // Boot Block Table Read Protection bit (Boot Block (000000-0007FFh) not protected from table reads executed in other blocks)



/*
 *
 */
#define _XTAL_FREQ (16000000UL)


#define CLK_1 LA2 // LATX Bitleri cikis icin PORTX ise giris okumak icin kullan?l?yor(yeni nesil islemciler ve 18 serilerinin bir cogu boyle)
#define DATAI_1 LA0 // LATXbits.LX0 ?eklinde de tan?mlanabilirler
#define ENB_1 LA1

#define CLK_2 LA3
#define DATAI_2 LA4
#define ENB_2 LA5
void Delay_ms(uint16_t miliSecond)
{
    for (uint16_t i = 0; i < miliSecond; i++)
        __delay_ms(1);
}
void tpic595_1(int rkm, char disp)
{
    char t;




    ENB_1=0;
        for(t=0;t<8;t++)
        {
            CLK_1=0;
            if((rkm<<t)&0x80)
                DATAI_1=1;
            else
                DATAI_1=0;
            CLK_1=1;
            __delay_ms(5);
        }
            ENB_1=1;

}
void tpic595_2(int rkm,char disp)
{
    char y;




    ENB_2=0;
        for(y=0;y<8;y++)
        {
            CLK_2=0;
            if((rkm<<y)&0x80)
                DATAI_2=1;
            else
                DATAI_2=0;
            CLK_2=1;
        }
            ENB_2=1;
}

void main(void)
{
    
      /* Clock Configuration */
    OSCCON = 0x78;
    OSCCON2 = 0b00000100;
    OSCTUNE = 0b00011111;

    Delay_ms(1000);
    while (!OSCCONbits.HFIOFS); // Wait for OSC Stable
    /* Clock Configuration */


	// !!!! hızı 16mhz göre ayrlarsın yine. pll yukarda kapat, pll olmadan dene. Pinlerde pull-up yada down olabilir onları kontrol et. Ayrıca pinler
	// giriş mi çıkışmı belli değil. Ansel yapmıssın ama sonra trisa 0 demişsi sonra porta 0 demişsin. port kavramı dig. inp okumak içindir. Bu şekilde
	// tanımlama eksik olmuş.
	/*
		/* GPIO Configuration */
    WPUB = 0x00;

    ADCON0 = 0x00;
    ADCON1 = 0x00;

    TRISA = 0b00000000;
    TRISB = 0b00000000;
    TRISC = 0b11000000;
    RCON=0b00000100;


	// ,rnek olarak bu şekilde olabilir. Şuandabaşka işlerim var bitirdikten sonra yine yardım etmeye çalışırım. Kolay gelsin

    unsigned int i=0,k=0,d;



    CM1CON0=0x00;
    CM2CON0=0X00;
    CM2CON1=0X00;
    PMD1=0XFF;
    PMD2=0XFF;
    VREFCON0=0x30;
    VREFCON1=0X00;
    CTMUEN=0;
    SRLEN=0;
    ANSELA=0x00;
    ANSELB=0xF0;
    ANSELC=0x00;
    

    PORTA=0x00;
    LATA=0x00;
    PORTB=0x00;
    LATB=0x00;
    PORTC=0x00;
    LATC=0x00;


    while(1)
    {

        LATA=0b00101010;

        LATC3=1;
        LATC4=1;
        


    }

}

Elinizde bu işlemci için reelde denediğiniz bir led blink programı varsa onu deneyeyim de en azından işlemcide sıkıntı varsa boşuna vakit kaybı yaşamıyım yoksa ödev yetişmeyecek :).
"Makineye Beyin" MEKATRONİK

JOKERAS

#19
Pic Kitin Akımı yetmiyordur.Onun için hata verir.
Devrenizi 7805 gibi bir regüle ile Ekstra 5V ile besleyin.
Ekstra 5V varken Programlayın.LVP kesinlikle kapalı olacak.
Yada LVP'nin ilgili pinini bulup Pull-Down yapın.

Hazırda Kod yok.
Ama siz zaten yapmış ve çalıştırmışsınız zaten.

apsis

Hocam kod sadece simülasyonda çalışıyor. Simülasyonda i2c bile yaptım.
"Makineye Beyin" MEKATRONİK

JOKERAS

Alıntı yapılan: apsis - 28 Kasım 2016, 15:29:30
Hocam kod sadece simülasyonda çalışıyor. Simülasyonda i2c bile yaptım.
Tamam işte,bizde onu diyoruzya:)
Siz dediğimi yapın,şakır şakır çalışacak.Siz Danayı Yüzmüş kuyruğunda sonsuz döngüye girmişsiniz:)
LVP Kapalı olcek.

apsis

Değerli arkadaşlar işlemciyi çalıştırdım. Sizi boşuna yordum kusura bakmayın. Sorun soğuk lehimmiş.
"Makineye Beyin" MEKATRONİK

JOKERAS

Vay beee,
Ne soğuk lehimmiş bu böyle.

Yetkili servsite beraber çalıştığımız bir arkadaş vardı,bazen uyuz arızaları olan cihalazdan kendisine denk geldiğinde
kıvranır dururdu.Cihazı yapamaz durmadan Parça yakar işin içinden çıkamazdı.
Sonra sinsice yanıma gelip şu cihazı yap sana öğle yemeği artı Marlboro ısmaralayacağım derdi.
Bende Mal görmüş Mağribi gibi atlardım cihazı tamir ederdim:)
Sonra Patron gelir arkadaşa sorardı.
+Nesi varmış bu cihazın.
-Soğuk lehim varmış abi.
+Ne soğuk lehimi lan, bu cihazlar daha yeni?
-Abi Soğuk lehim vardı Valla.

Patron yemezdi aslında ama yemiş gibi yapardı.
Bu olay peryodik zamanlarda olurdu,Patron yine sordu bizim Tilki arkadaşa.
Nesi varmış olum bu cihazın?
Patron bizim arkadaşa,Dur sen söyleme ben söyleyeyim,Soğuk lehim varmış değilmi dedi.
Bizim Tilki Evet abi demesinmi?
Güle Güle yerlere yattım:)
O değil,bizim Tilki hiç oralı değil,sanki gerçekten Soğuk lehim varmış gibi yalandan bir ciddiyet
tripleri.

Şimdi sen apsis usta, bu kadar adamı Deli tavuk gibi dolandır,Sonrada Soğuk leeem varmış de.
Hiç olacak işmi bu?:)


baran123

Alıntı yapılan: JOKERAS - 30 Kasım 2016, 20:19:04
Vay beee,
Ne soğuk lehimmiş bu böyle.

Yetkili servsite beraber çalıştığımız bir arkadaş vardı,bazen uyuz arızaları olan cihalazdan kendisine denk geldiğinde
kıvranır dururdu.Cihazı yapamaz durmadan Parça yakar işin içinden çıkamazdı.
Sonra sinsice yanıma gelip şu cihazı yap sana öğle yemeği artı Marlboro ısmaralayacağım derdi.
Bende Mal görmüş Mağribi gibi atlardım cihazı tamir ederdim:)
Sonra Patron gelir arkadaşa sorardı.
+Nesi varmış bu cihazın.
-Soğuk lehim varmış abi.
+Ne soğuk lehimi lan, bu cihazlar daha yeni?
-Abi Soğuk lehim vardı Valla.

Patron yemezdi aslında ama yemiş gibi yapardı.
Bu olay peryodik zamanlarda olurdu,Patron yine sordu bizim Tilki arkadaşa.
Nesi varmış olum bu cihazın?
Patron bizim arkadaşa,Dur sen söyleme ben söyleyeyim,Soğuk lehim varmış değilmi dedi.
Bizim Tilki Evet abi demesinmi?
Güle Güle yerlere yattım:)
O değil,bizim Tilki hiç oralı değil,sanki gerçekten Soğuk lehim varmış gibi yalandan bir ciddiyet
tripleri.

Şimdi sen apsis usta, bu kadar adamı Deli tavuk gibi dolandır,Sonrada Soğuk leeem varmış de.
Hiç olacak işmi bu?:)


:D :D

eeburakdemir

Asla pes etme...

tekosis

aslında bu tür sorunlar için bir kontrol listesi kullanılmalı. en basit ve ilk bakılması gereken problem ihtimali bazen akla en son geliyor.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

apsis

@eeburakdemir Teşekkür ederim :).
@tekosis aynen ve büyük bir zaman kaybına neden oluyor bize.
"Makineye Beyin" MEKATRONİK