Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

PIC problém s kompilací
Jdi na stránku 1, 2, 3, 4, 5  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: pá červenec 29 2022, 15:12    Předmět: PIC problém s kompilací Citovat

Zdravím,

Může mi prosím někdo pomoct? Mám pic18F26K80 kompilátor XC8
v souboru XLCD.h mám deklaraci funkce

void CLCD_PutC(unsigned char);

a vsouboru XLCD.c je funkce
samozřejmě je zde includovan soubor xlcd.h

void CLCD_PutC(unsigned char ch) {
CLCD_SendData(ch);
}

No a při kompilaci to píše chybu

error: (1098) conflicting declarations for variable "_CLCD_PutC"

Nevíte někdo co s tím?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: pá červenec 29 2022, 17:07    Předmět: Citovat

tak asi chyba kompilátoru,měl jsem tam verzi 1.33 a zkusil jsem kompilaci verzí 2.36 a prošlo to což je nějaký divný.Pokud by jste někdo měl tušení proč prosím napište mi to.Děkuji
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
bdn



Založen: Jan 16, 2020
Příspěvky: 468

PříspěvekZaslal: so červenec 30 2022, 9:19    Předmět: Citovat

No ono sestavení programu v C probíhá podle nějaké logiky (make), kde moderní IDE pomáhají nějakým způsobem...
Občas pomůže vytvořit nový projekt a .c, .h soubory tam nasypat znova.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: so červenec 30 2022, 13:41    Předmět: Citovat

No co jsem vyčetl kdesi na foru microchipu tak nejsem jeinej komu to tohle dělalo a pokud jsem to dobře pochopil tak někdo u microchipu naprosto ženijálně vymyslel že ke starší verzi kompilátoru dá o něco novější knihovny a pak si to takhle nerozumí.Ale ono už je to jedno protože si tu hraju se starším LCD displejem 2x16 znaku nechce to chodit a datasheet od něja taky není je to typ OM1628-GNN a furt to nechce chodit až teď jsem našel prastarej program v asm o kterým vím že to s ním chodilo a nepoužíval jsem tam časování jako teď,ale čtení BUSY flagu tak to přepíšu..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: ne červenec 31 2022, 10:12    Předmět: Citovat

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



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: po srpen 01 2022, 21:05    Předmět: Citovat

Jj dík našel jsem ho na jednom starym dvd ale furt to mrcha nechodi a nevím proč.Přitom jsem jen přepsal starej asm program o kterym na beton vim že chodil na pic16f876 do C pro pic18f26k80.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: út srpen 02 2022, 7:57    Předmět: Citovat

Jako první vyzkoušet ten displej s PIC16F876 a programem v ASM, ať víš, jestli je stoprocentně v pořádku?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: ne srpen 07 2022, 9:46    Předmět: Citovat

Tak jsem se k tomu zas na chvilku dostal,desku s 16F876 už nemám takže tenhle způsob ozkoušení je mimo hru.Displeje stále nechodí zkoušel jsem to znouze i v mikrobasicu a nic takže teď vezmu původní asm a zkusím to na 16F1509 a pokud to nebude chodit je po nich.Ale abych se vrátil k původnímu dotazu. Mám soubor main.c v něm volám funkci LCD_putchar("a") dekalrace této funkce je v souboru xlcd.h verze kompilátoru 1.33 píše chybu viz.1 příspěvek verze 2.36 to sežere normálně bez chyby. Ale když deklaraci funkce přesunu do souboru main.c tak to sežere i verze 1.33 to vypadá jako kdyby ta starší verze includovala soubor xlcd.h bůhví kam.Zatím co novější verze to dá pěkně na začátek a tím pádem je to bez chyby.By mě zajímalo jak to je...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: ne srpen 07 2022, 19:12    Předmět: Citovat

Už ti odpověděl bdn, záleží, jak máš nakonfigurované prostředí…
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: út srpen 09 2022, 19:05    Předmět: Citovat

Zdravím snad nebude vadit když se zeptám zde,už jse, zkusil 5 LCD displejů a bezvýsledně mám 3 displeje 2x16 na těch se rozsvítí horní řádek a polovina spodního u těch předpokládám že jsou k.o Potom mám 2x20 a u těch svítí jen horní žádek máte prosím někdo ověřenej kód pro 2x16 a 2x20 o který byste byli schopni se podělit.Kdysi mo to chodilo s tímhle http://prochazka.clanweb.eu/index.php?a=pic/lcd_4bit
ale teď ani ťuk.Díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: čt srpen 11 2022, 18:46    Předmět: Citovat

Kód momentálně nemám, mám ho zahrabanej někde v archivu taky na DVD a není moc čas to hledat, ale když svítí jeden řádek a druhej ne, tak ti neproběhl ani init toho displeje.

Na té odkazované stránce jsem nenašel frekvenci krystalu k tomu kódu, ale je to tam samej delay, takže na tom záleží, a ten PIC18F26K80 umí až do 64MHz. Máš dobře nastavený oscilátor? Kmitá ti u toho 16F877 krystal (nebo máš nastavenej dobře ten 16F1509, na kterým to tedy asi zkoušíš, jestli jsem to dobře pochopil)?

Ještě můžeš zkusit použít kód od Asixu, tam je aspoň vše k věci známo:
https://asix.tech/_museum/pvk40_cz.htm
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: čt srpen 11 2022, 19:35    Předmět: Citovat

jj na te strance je to na 4Mhz tu 16f1509 mam na 4Mhz tam jsem se pohnul ale sviti prvni radek a pulka druhyho. U tech 2x20 displeju sviti jen horni radek tam adi ten init neprobehne.dik na ten asix mrknu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: ne srpen 14 2022, 16:23    Předmět: Citovat

Nijak jsem s tím nepohnul můžete se mi prosím na to někdo mrknout ? dík

kód:

/*
 * File:   main.c
 * Author: nop
 *
 * Created on 20. dubna 2020, 19:36
 */

// CONFIG1L
#pragma config RETEN = OFF      // VREG Sleep Enable bit (Ultra low-power regulator is Disabled (Controlled by REGSLP bit))
#pragma config INTOSCSEL = HIGH // LF-INTOSC Low-power Enable bit (LF-INTOSC in High-power mode during Sleep)
#pragma config SOSCSEL = DIG   // SOSC Power Selection and mode Configuration bits (High Power SOSC circuit selected)
#pragma config XINST = OFF       // Extended Instruction Set (Enabled)

// CONFIG1H
#pragma config FOSC = INTIO2    // Oscillator (Internal RC oscillator)
#pragma config PLLCFG = ON      // PLL x4 Enable bit (Disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor (Disabled)
#pragma config IESO = OFF       // Internal External Oscillator Switch Over Mode (Disabled)

// CONFIG2L
#pragma config PWRTEN = OFF     // Power Up Timer (Disabled)
#pragma config BOREN = SBORDIS   // Brown Out Detect->Enabled in hardware, SBOREN disabled
#pragma config BORV = 3         // Brown-out Reset Voltage bits->1.8V
#pragma config BORPWR = ZPBORMV // BORMV Power level (ZPBORMV instead of BORMV is selected)

// CONFIG2H
#pragma config WDTEN = OFF      // Watchdog Timer (WDT disabled in hardware; SWDTEN bit disabled)
#pragma config WDTPS = 1048576  // Watchdog Postscaler (1:1048576)

// CONFIG3H
#pragma config CANMX = PORTB    // ECAN Mux bit (ECAN TX and RX pins are located on RB2 and RB3, respectively)
#pragma config MSSPMSK = MSK7   // MSSP address masking (7 Bit address masking mode)
#pragma config MCLRE = ON       // Master Clear Enable (MCLR Disabled, RE3 Enabled)

// CONFIG4L
#pragma config STVREN = OFF     // Stack Overflow Reset (Disabled)
#pragma config BBSIZ = BB1K     // Boot Block Size (1K word Boot Block size)

// CONFIG5L
#pragma config CP0 = OFF        // Code Protect 00800-03FFF (Disabled)
#pragma config CP1 = OFF        // Code Protect 04000-07FFF (Disabled)
#pragma config CP2 = OFF        // Code Protect 08000-0BFFF (Disabled)
#pragma config CP3 = OFF        // Code Protect 0C000-0FFFF (Disabled)

// CONFIG5H
#pragma config CPB = OFF        // Code Protect Boot (Disabled)
#pragma config CPD = OFF        // Data EE Read Protect (Disabled)

// CONFIG6L
#pragma config WRT0 = OFF       // Table Write Protect 00800-03FFF (Disabled)
#pragma config WRT1 = OFF       // Table Write Protect 04000-07FFF (Disabled)
#pragma config WRT2 = OFF       // Table Write Protect 08000-0BFFF (Disabled)
#pragma config WRT3 = OFF       // Table Write Protect 0C000-0FFFF (Disabled)

// CONFIG6H
#pragma config WRTC = OFF       // Config. Write Protect (Disabled)
#pragma config WRTB = OFF       // Table Write Protect Boot (Disabled)
#pragma config WRTD = OFF       // Data EE Write Protect (Disabled)

// CONFIG7L
#pragma config EBTR0 = OFF      // Table Read Protect 00800-03FFF (Disabled)
#pragma config EBTR1 = OFF      // Table Read Protect 04000-07FFF (Disabled)
#pragma config EBTR2 = OFF      // Table Read Protect 08000-0BFFF (Disabled)
#pragma config EBTR3 = OFF      // Table Read Protect 0C000-0FFFF (Disabled)

// CONFIG7H
#pragma config EBTRB = OFF      // Table Read Protect Boot (Disabled)



// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

/*Pripojeni sispleje
 * E - PORTB 5
 * RS - PORTB 4
 *
 * D4 - PORTB 0
 * D5 - PORTB 1
 * D6 - PORTN 2
 * D7 - PORTB 3
 */



// Standartni kmihovny
#include <xc.h>
#include <pic18f26k80.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

// Moje knihovny
// Init MCU
#include "hw_set.h"

//Displej
//#include "xlcd.h"


// Rychlost MCU
#define _XTAL_FREQ 64000000

// Casovani blikani led
#define delay 100

//Pojmenovani PINu
#define LED LATCbits.LATC0

//Displej
#define RS_PIN      LATBbits.LATB4         /* PORT for RS */
#define E_PIN       LATBbits.LATB5 

//Prototypy funkci
void LCD_STROBE(void);
void LCD_WRITE(unsigned char c);
void LCD_PUTCH(unsigned char c);
void LCD_CLEAR(void);
void LCD_GOTO(unsigned char pos);
void LCD_INIT(void);


//Promenne
volatile unsigned int i ;

void LCD_STROBE(void)
{
    E_PIN = 1;
    __delay_us(10);
    E_PIN =0;
}

/* write a byte to the LCD in 4 bit mode */
void LCD_WRITE(unsigned char c)
{
    LATB = (LATB & 0xF0) | (c >> 4);
    LCD_STROBE();
    LATB = (LATB & 0xF0) | (c & 0x0F);
    LCD_STROBE();
    __delay_us(40);
}


//* Clear and home the LCD
void LCD_CLEAR(void)
{
    RS_PIN = 0;
    LCD_WRITE(0x1);
    __delay_ms(2);
}


/* write one character to the LCD */
void LCD_PUTCH(unsigned char c)
{
    RS_PIN = 1; // write characters
    LATB = (LATB & 0xF0) | (c >> 4);
    LCD_STROBE();
    LATB = (LATB & 0xF0) | (c & 0x0F);
    LCD_STROBE();
    __delay_us(40);
}

//* Go to the specified position
void LCD_GOTO(unsigned char pos)
{
    RS_PIN = 0;
    LCD_WRITE(0x80+pos);
}

void LCD_INIT(void)
{
    RS_PIN = 0; // write control bytes
    __delay_ms(10); // power on delay
    __delay_ms(5);
    LATB = 0x3; // attention!
    LCD_STROBE();
    __delay_ms(5);
    LCD_STROBE();
    __delay_us(100);
    LCD_STROBE();
    __delay_ms(5);
    LATB = 0x2; // set 4 bit mode
    LCD_STROBE();
    __delay_us(40);
    LCD_WRITE(0x28); // 4 bit mode, 1/16 duty, 5x8 font
    LCD_WRITE(0x08); // display off
    LCD_WRITE(0x0F); // display on, blink curson on
    LCD_WRITE(0x06); // entry mode
}


void main(void) { 
   
    hw_init();
    LCD_INIT();
    LCD_PUTCH("A");
       
    while (1)
        {
            LED = 1;
           
            // Cekani 1 sec
            for (i=0; i < delay; i++){
            __delay_ms(10);
            }
           
            LED = 0;
           
            // Cekani 1 sec
            for (i=0; i < delay; i++){
            __delay_ms(10);
            }           
           
        }


};


soubor hw_set.h

kód:


#ifndef _MODUL_setting_osc
#define _MODUL_setting_osc


#include <xc.h>

#define _XTAL_FREQ 64000000

// INIT HW
void hw_init(void);


#endif


a soubor hw_set.c

kód:

#include <xc.h>

void hw_init(void){
   
    //Nastaveni oscilatoru
    OSCCON  = 0b01110000; //Interni oscilator 16MHz
    OSCCON2 = 0b00000000;
    OSCTUNE = 0b01000000; //PLL zapnuta (bit6)
    REFOCON = 0b00000000;
   
    //Nastaveni portu
    ODCON  = 0b000000000; // Peripheral OPEN DRAIN control
    SLRCON = 0b000000000;
   
    //PortA
    TRISA = 0b00000000;
    PORTA = 0b00000000;
    LATA  = 0b00000000;
    ANCON0 = 0b00000000;
   
    //PortB
    WPUB = 0b11111111;
    TRISB = 0b00000000;
    PORTB = 0b00000000;
    LATB  = 0b00000000;
    ANCON1 = 0b00000000;
   
    //PortC
    TRISC = 0b00000000;
    PORTC = 0b00000000;
    LATC  = 0b00000000;
   
    // open drain
    ODCON = 0b00000000;
 
    //Preruseni
   
    /*
    INTCONbits.GIE_GIEH = 1;  //Bit 7 Zapnuta vsechna HIGH-priority preruseni
    INTCONbits.PEIE_GIEL = 1; //Bit 6 Zapnuta vsechna LOW-priority preruseni
    INTCONbits.TMR0IE = 0;    //Bit 5 TMR0 interrupt OFF
    INTCONbits.INT0IE = 0;    //Bit 4 INT0 external interrupt OFF
    INTCONbits.RBIE = 0;      //Bit 3 Change PORTB interrupt OFF
    INTCONbits.TMR0IF = 0;    //Bit 2 TMR0 flag
    INTCONbits.INT0IF = 0;    //Bit 1 INT0 External interrup flag
    INTCONbits.RBIF = 0;      //Bit 0 Change PORTB interrupt flag
    */
    INTCON = 0b00000000; //Tento zapis je uspornejsi v poctu instrukci
   
    /*
    INTCON2bits.RBPU = 1;    //PortB pull ups OFF
    INTCON2bits.INTEDG0 = 0; //External Interrupt 0 Edge select bit = Falling
    INTCON2bits.INTEDG1 = 0;
    INTCON2bits.INTEDG2 = 0;
    INTCON2bits.INTEDG3 = 0;
    INTCON2bits.TMR0IP = 0;  //Tmr0 interrupt priority bit 0 - LOW, 1 - HIGH
    INTCON2bits.INT3IP = 0;  //Int3 Extrnal interrupt priority bit
    INTCON2bits.RBIP = 0;    //RB port change interrupt priority bit
    */
    INTCON2 = 0b00000000;
   
    /*
    INTCON3bits.INT2IP = 0;  //Int2 external interrupt priority bit 0-LOW 1-HI
    INTCON3bits.INT1IP = 0;  //Int1
    INTCON3bits.INT3IE = 0;  //Int3 External interrupt enable bit 0-OFF 1-ON
    INTCON3bits.INT2IE = 0;  //Int2
    INTCON3bits.INT1IE = 0;  //Int1
    INTCON3bits.INT3IF = 0;  //Int3 external interrupt Flag bit
    INTCON3bits.INT2IF = 0;  //Int2
    INTCON3bits.INT1IF = 0;  //Int1
    */
    INTCON3 = 0b00000000;
   
    /*
    //PIE registry zapinaji interrupt jednotlivejch periferii
                          //Bit7 podle DS je PSPIE
                          //Parallel Slave Port Read/write interrupt enable bit
     *                    //ale naseptavac ho nejak nezna   
    PIE1bits.ADIE = 0;    //A/D converter Interrupt enable bit
    PIE1bits.RC1IE = 0;   //Eusart1 Receive interrupt enable bit
    PIE1bits.TX1IE = 0;   //Eusart1 Transmit interrupt enable bit
    PIE1bits.SSPIE = 0;   //MSSP interrupt enable bit
    PIE1bits.TMR1GIE = 0; //TMR1 gate interrupt Enabli bit
    PIE1bits.TMR2IE = 0;  //TMR2 Overflow Interrupt Enable bit
    PIE1bits.TMR1IE = 0;  //TMR1 Overflow Interrupt Enable bit
    */
    PIE1 = 0b00000000;
   
    /*
    PIE2bits.OSCFIE = 0;  //bit7 Oscilator fault Interrupt enable bit
                          //bit 6 Neimplementováno
                          //bit 5 taky
                          //bit 4 taky
    PIE2bits.BCLIE = 0;   //bit 3 Bus colision interrupt enabli bit
    PIE2bits.HLVDIE = 0;  //bit 2 High/Low Voltage detect interrupt enable bit
    PIE2bits.TMR3IE = 0;  //bit 1 TMR3 overflow interrupt enable bit
    PIE2bits.TMR3GIE = 0; //bit 0 TMR3 gate interrupt enable bit
    */
    PIE2 = 0b00000000;
    /*
                         //bit 7 není
                         //bit 6 taky ne
    PIE3bits.RC2IE = 0;  //bit 5 Eusart2 Recieve interrupt enable bit
    PIE3bits.TX2IE = 0;  //bit 4 Eusart2 Transmit interrupt enable bit
    PIE3bits.CTMUIE = 0; //bit 3 CTMU interrupt enable bit
    PIE3bits.CCP2IE = 0; //bit 2 CCP2 interrupt enable bit
    PIE3bits.CCP1IE = 0; //bit 1 CCP1 interrupt enable bit
                         //bit 0 nepritomen
    */
    PIE3 = 0b00000000;
   
    /*
    PIE4bits.TMR4IE = 0;  //TMR4 Overflow interrupt enable bit
    PIE4bits.EEIE = 0;    //Data EEDATA/FLASH write operation interrupt enable
    PIE4bits.CMP2IE = 0;  //CMP2 interrupt enable bit
    PIE4bits.CMP1IE = 0;  //CMP1 interrupt enable bit
                          //bit 3 neprizomen
    PIE4bits.CCP5IE = 0;  //CCP5 interrupt enable bit
    PIE4bits.CCP4IE = 0;  //CCP4 interrupt enable bit
    PIE4bits.CCP3IE = 0;  //CCP3 interrupt enable bit
    */
    PIE4 = 0b00000000;
   
    /*
    PIE5bits.IRXIE = 0;  //Invalid message received interrupt enable bit
    PIE5bits.WAKIE = 0;  //Bus wake-up activity interrupt enable bit
    PIE5bits.ERRIE = 0;  //Error interrupt enable bit (multiple sources in COMSTAT register)
    PIE5bits.TXB2IE = 0; //Transmit buffer 2 interrupt enable bit
    PIE5bits.TXB1IE = 0; //Transmit buffer 1 interrupt enable bit
    PIE5bits.TXB0IE = 0; //Transmit buffer 0 interrupt enable bit
    PIE5bits.RXB1IE = 0; //Receive buffer 1 interrupt enable bir
    PIE5bits.RXB0IE = 0; //bit 0 Mod 0 - Receive buffer 0 enable bit
                         //Mod 1 - unimplemented
                         //Mod 2 - FIFOFIE FIFO full interrupt enable bit
    */
    PIE5 = 0b00000000;
   
    /*
                        //bit 7 je PSPIP Paralel slave port Read/Write
                        //interrupt priority bit ale naseptavac to nejak nezna
    IPR1bits.ADIP = 0;  //A/D coverter interrupt priority bit 0-LOW 1-HIGH
    IPR1bits.RC1IP = 0; //Eusart1 Receive interrupt priority bit
    IPR1bits.TX1IP = 0; //Eusart1 Transmit interrupt priority bit
    IPR1bits.SSPIP = 0; //Master synchronous serial port interrupt priority bit
    IPR1bits.TMR1GIP = 0; //TMR1 gate interrupt priority bit
    IPR1bits.TMR2IP = 0;  //TMR2 to PR2 Match interrupt priority bit
    IPR1bits.TMR1IP = 0;  //TMR1 overflow interrupt priority bit
    */
    IPR1 = 0b00000000;
   
    /*
    IPR2bits.OSCFIP = 0;  //bit7 Oscilator Fail interrupt priority bit
                          //bity 6-4 nejsou
    IPR2bits.BCLIP = 0;   //bit3 Bus collsion interrupt priority bit
    IPR2bits.HLVDIP = 0;  //bit2 High/Low Voltage detect interrupt priority bit
    IPR2bits.TMR3IP = 0;  //bit1 TMR3 Overflow interrupt priority bit
    IPR2bits.TMR3GIP = 0; //bit0 TMR3 Gate interrupt priority bit
    */
    IPR2 = 0b00000010;
   
    /*
                          //bity 7-6 nejsou v IPR3
    IPR3bits.RC2IP = 0;   //bit5 Eusart2 Receive interrupt priority bit
    IPR3bits.TX2IP = 0;   //bit4 Eusart2 Transmit interupt ptiority bit
    IPR3bits.CTMUIP = 0;  //bit3 CTMU interrupt priority bit
    IPR3bits.CCP2IP = 0;  //bit2 CCP2 interrupt priority bit
    IPR3bits.CCP1IP = 0;  //bit1 CCP1 interrupt priority bit
                          //bit0 neni
    */
    IPR3 = 0b00000000;
   
    /*
    IPR4bits.TMR4IP = 0;   //bit7 TMR4 Overfloe interrupt priority bit
    IPR4bits.EEIP = 0;     //bit6 EE interrupt priority bit
    IPR4bits.CMP2IP = 0;   //bit5 CMP2 interrupt priority bit
    IPR4bits.CMP1IP = 0;   //bit4 CMP1 interrupt priority bit
                           //bit3 neni
    IPR4bits.CCP5IP = 0;   //bit2 CCP5 interrupt priority bit
    IPR4bits.CCP4IP = 0;   //bit1 CCP4 interrupt priority bit
    IPR4bits.CCP3IP = 0;   //bit0 CCP3 interrupt priority bit
    */
    IPR4 = 0b00000000;

    /*   
    IPR5bits.IRXIP = 0;    //Invalid Message Received interrupt priority
    IPR5bits.WAKIP = 0;    //Bus wakeup activity interrupt priority
    IPR5bits.ERRIP = 0;    //CAN bus Error interrupt interrupt priority
    IPR5bits.TXB2IP = 0;   //Transmit buffer 2 interrupt priority
    IPR5bits.TXB1IP = 0;   //Transmit buffer 1 interrupt priority
    IPR5bits.TXB0IP = 0;   //Transmit buffer 0 interrupt priority
    IPR5bits.RXB1IP = 0;   //Receive buffer 1 interrupt priority
                           //Mode O: 0-Low priority 1-HIGH
                           //Mode 1: neni
                           //Mode 2: FIFOIE: FIFO Full interrup priority
    */
    IPR5 = 0b00000000;
   
   
    //Nastaveni RESET registru
    RCONbits.IPEN = 1; //Interrupt priority on
   
   
    return;
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: ne srpen 14 2022, 19:57    Předmět: Citovat

1. return; na konci hw_set.c tam nemá co dělat
2. xc.h stačí připojit jen jednou v main.c
3. CONFIG1H: FOSC = INTIO2 = FOSC<3:0> val. 1000 = internal RC oscillator
4. Až si správně nastavíš oscilátor, budeš muset kontrolovat bity OSTS a HFIOFS, tj. počkat až ti těch 64 MHz správně naběhne
5. Používej logický analyzér
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nop



Založen: May 18, 2007
Příspěvky: 161

PříspěvekZaslal: po srpen 15 2022, 8:38    Předmět: Citovat

JJ dík oscilátor jsem změnil na

kód:

#pragma config FOSC = EC3       // Oscillator (EC oscillator (High power, 16 MHz - 64 MHz))


Kontrolu těch bitů tam dopíšu,ale je divný že ta ledka na konci programu blikala i tak cca v sekundovejch intervalech jak má.Teď na to už nemám čas neb musím za chvilku do práce.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3, 4, 5  Další
Strana 1 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůž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.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.27 sekund