Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 29.11.2018, 15:33   #201
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,062
Вес репутации: 3977/84
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: xc8

AlDes
Якобы она встроена в компилятор, что не верно. - у Вас же ниже написано
Код:
extern void _delay(unsigned long)
учитывая отсутствие квалификатора static inline она не может быть размещена в pic.h, тк. это заголовочный файл.

я не знаю где размещена _delay(unsigned long), но опираясь на pragma предполагаю, что функцию-таки линкует компилятор.
besogon вне форума   Ответить с цитированием
Старый 29.11.2018, 17:37   #202
AlDes
Member
 
Регистрация: 08.07.2016
Сообщений: 37
Вес репутации: 137/12
AlDes will become famous soon enoughAlDes will become famous soon enough
По умолчанию Re: xc8

C:\Program Files\Microchip\xc8\v1.20\include
Для младших pic.h
Для 18х в pic18.h

Достаточно подключить к проекту только
#include <xc.h>
В нем автоматом подключается
#include <htc.h>
А уже htc.h, в зависимости от пика, автоматом подключается:

Код:
/* HI-TECH PICC / PICC-Lite compiler */
#if	defined(__PICC__) || defined(__PICCLITE__)
#include <pic.h>
#endif

/* HI-TECH PICC-18 compiler */
#if	defined(__PICC18__)
#include <pic18.h>
#endif
В которых и описан этот макрос.
Здесь звучало утверждение, что этой функции, нет ни в одном файле. И мол, у кого то она работает не так как надо.
Мне например, она не очень то и нужна, но заглянув вышеозвученные файлы, можно понять, как надо ее вызывать, что бы была задержка в тиках, us, ms.

Тик

_delay();

us

__delay_us(x);

ms
__delay_ms(x);

А для 18-х, есть еще задержка и для WDT.

__delaywdt_us(x)
__delaywdt_ms(x)

Пусть студенты знают про это.
AlDes вне форума   Ответить с цитированием
Старый 29.11.2018, 18:36   #203
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 47
Сообщений: 1,796
Вес репутации: 2039/78
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: xc8

Цитата:
Сообщение от AlDes Посмотреть сообщение
Достаточно подключить к проекту только
#include <xc.h>
В нем автоматом подключается
#include <htc.h>
А уже htc.h, в зависимости от пика, автоматом подключается:
У Вас старая версия, в xc8 2.0 уже нет ссылки на htc.h. А в
MPLAB XC8 C Compiler User’s Guide for PIC MCU про эти задержки все расписано, трудно не понять что о чем.
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 11.02.2019, 20:14   #204
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 810
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: xc8

даже не знаю куда и вопрос задать...
компилятор ХС8 1.33 , камень 12F675, вроде обычный ногадрыг
в вечном цикле
Код:
    while(1)
    {
      NOP();
      RELAY_1=1;
      dalay_time(2);
      RELAY_1=0;
      dalay_time(2);
      RELAY_2=1;
      dalay_time(2);
      RELAY_2=0;
      dalay_time(2);
      NOP();
           
    } // end while(1)
задержка
Код:
void dalay_time(unsigned int timer)
{
      while(timer--)
    {
        while(!flag.FL1SEC);
        flag.FL1SEC=0;     
    }
}
прерывание по TMR1 подымает флаг каждую секунду и мигает ледом
в симе получаю вот такую хрень
Миниатюры
сим.png  
DmitrijVDN вне форума   Ответить с цитированием
Старый 12.02.2019, 14:32   #205
tsb58
Senior Member
 
Аватар для tsb58
 
Регистрация: 04.11.2008
Адрес: Харьков
Сообщений: 365
Вес репутации: 1041/52
tsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud of
По умолчанию Re: xc8

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
...в симе получаю вот такую хрень
Так а в чем собственно вопрос? По-моему, "хрень" на картинке соответствует тому, что написано в программе. Или нет?
А-а-а, кажется понял. Вопрос в том, что циклическое формирование импульсов на выходах RELAY через время прекращается?

Последний раз редактировалось tsb58; 12.02.2019 в 14:37.
tsb58 вне форума   Ответить с цитированием
Старый 12.02.2019, 18:45   #206
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 810
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: А-а-а, кажется понял. Вопрос в том, что циклическое формирование импульсов на выходах RELAY через время прекращается?

именно это... по ходу сам разобрался ,было включено прерывание от TMR0
DmitrijVDN вне форума   Ответить с цитированием
Старый 09.03.2019, 21:40   #207
AlDes
Member
 
Регистрация: 08.07.2016
Сообщений: 37
Вес репутации: 137/12
AlDes will become famous soon enoughAlDes will become famous soon enough
По умолчанию Re: xc8

Как победить всплеск на выходах PORTB, при подачи питания на МК?
PIC16.
Если залить штатную прошивку, всплеска нет. Изделие заводское.
В Инициализации, что только не писал.
На выходах портов A, С всплеска нет.
Осциллограмма всплеска во вложении.
Вкл подтягивающих не помогает, и исходя из схемы устройства, в них нет необходимости.
Один из вариантов инициализации.

Код:
void init (void)
{
 CLRWDT();
   GIE=0;//INTCON = 0b00100000; 
     OPTION_REG=0b10001111;//RPBU-Off////Prescaler assigned to the WDT 1:128! 
   
//-----------------------------------------------
TRISA = 0b00111100; 
TRISB = 0b11110000; 
TRISC = 0b10001010;
   
//PORTA = 0b00000000; 
//PORTB = 0b00000000; 
//PORTC = 0b00000000;
PORTA = 0b00101100;// RA4 кнопка по умолчанию нажата
PORTB = 0b11110000;
PORTC = 0b10001010;
   
ADCON1 = 0b00000111; // AD in digital-RA0 RA1 RA2 RA5 RA3
PEIE=0;// Disables TMR0 Interapt
//-----------------------------------------------
INTE=0;//Disables the PortB/INT external interapt 
RBIE=0;//Disables the PortB change interrapt
INTF=0;//PortB
RBIF=0;//f_PortB
//-------------------------------------------------
TMR0IE=1;//Enabl the inter TMR0!//  T0IE=1;
PSA=0;//Prescaler is assigned to the Timer0 module
PS2=0;PS1=1;PS0=0;//TMR0 Rate 1:8!
T0CS=0;//Sorce TMR0 (CLKOUT)!
PCON   = 0b00000000;  // Flags BOR;  POR 
PIR1   = 0b00000000;  // Reset Flags Peripheral Interrupt 
CCPR1L=0b01100011;
T1CON=48;//00110000-Prescaller= 1:8;Fosc/4;TMR1-off;
TMR1IE=1;//Interrupt enable TMR 1
PEIE=1; //INTCON<6> Peripheral Interrupt enable
GIE=1;

     }/*Init*/
	 
	 void main (void)
{//И так не помогат.
init();

PORTA = 0b00101100;
PORTB = 0b11110000;
PORTC = 0b10001010;
RB0=0;//..не помогает.
while (1) 
{
Миниатюры
100_1751.JPG  
AlDes вне форума   Ответить с цитированием
Старый 09.03.2019, 22:00   #208
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 47
Сообщений: 1,796
Вес репутации: 2039/78
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: xc8

Какой PIC16?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 09.03.2019, 23:25   #209
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 810
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: xc8

Цитата:
Как победить всплеск на выходах PORTB, при подачи питания на МК?
1.обнуляем регистр прерывания и периферийного прерывания
2. обнуляем регистры портов
3. если надо отключаем аналоговые входы
4. выставляем направление портов
5. устанавливаем состояние на выходах порта.
6. далее инициализируем нужные прерывания
DmitrijVDN вне форума   Ответить с цитированием
Старый 10.03.2019, 10:08   #210
AlDes
Member
 
Регистрация: 08.07.2016
Сообщений: 37
Вес репутации: 137/12
AlDes will become famous soon enoughAlDes will become famous soon enough
По умолчанию Re: xc8

Спасибо DmitrijVDN.
При следующем порядке инициализации, всплесков нет.

Код:
void init (void)
{
	CLRWDT();
	GIE=0;//INTCON <7>
	
	OPTION_REG=0b10001111;
	//               ||||||||_ PS0-PS2 1:128! 	
	//               |||||____ PSA-Prescaler assigned to the WDT
	//	             ||||_____ T0SE-TMR0 Soruce Edge
	//               |||______ T0CS-MMR0 Clock Source select bit-internal instr.	
	//               ||_______ Interapt rice RB0
	//               |________ RPBU-Off	
	//-----------------------------------------------
	
	INTCON=0;//GIE,PIE,TMR0IE,INTIE,RBIE,TMR0IF,INTF,RBIF==0;
   
        PIE1=0;//-ADIE--SSPIE,CCP1IE,TMR2IE,TMR1IE ==0;
	
	PORTA = 0b00000000; 
        PORTB = 0b00000000; 
        PORTC = 0b00000000;
	
	ADCON1 = 0b00000111; // AD in digital-RA0 RA1 RA2 RA5 RA3
	
	TRISA = 0b00111100; 
	TRISB = 0b11110000; 
	TRISC = 0b10001010;

	PORTA = 0b00101100;
	PORTB = 0b11110000;
        PORTC = 0b10001010;
	
	
	//-----------------------------------------------
	
	
	//---------------------INTCON--------------------
	
	//PEIE=0;// Disables TMR0 Interapt                   <6>
	//INTE=0;//Disables the PortB/INT external interapt  <4>
	//RBIE=0;//Disables the PortB change interrapt       <3>
	//INTF=0;//PortB External Interapt flag bit diseble  <1>
	//RBIF=0;//PortB                                     <0>


	TMR0IE=1;//Enabl the inter TMR0!                   <5>
	
	//----------------------OPTION_REG--------------------
	PSA=0;//Prescaler is assigned to the Timer0 module
	PS2=0;PS1=1;PS0=0;//TMR0 Rate 1:8!
	T0CS=0;//Sorce TMR0 (CLKOUT)!
	//-----------------------------------------------
	PCON   = 0b00000000;  // Flags BOR and POR Reset 
	
	PIR1   = 0b00000000;  // Reset Flags Peripheral Interrupt 
	CCPR1L=0b01100011;
	T1CON=48;//00110000-Prescaller= 1:8;Fosc/4;TMR1-off;
	TMR1IE=1;//Interrupt enable TMR 1
	PEIE=1; //INTCON<6> Peripheral Interrupt enable
	GIE=1; //INTCON<7>

}/*Init*/

void main (void)
{
	init();

	while (1) 
	{
AlDes вне форума   Ответить с цитированием
Старый 10.03.2019, 11:43   #211
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 810
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: xc8

сначала сброс прерываний , потом сброс собаки
Код:
     INTCON=0;
     PIE1=0;  
     PORTA = 0b00000000;
     PORTB = 0b00000000;          
     PORTC = 0b00000000;
     OPTION_REG=0b10001111;
     CLRWDT();          
     ADCON1 = 0b00000111; // AD in digital-RA0 RA1 RA2 RA5 RA3          
     TRISA = 0b00111100;      
     TRISB = 0b11110000;     
     TRISC = 0b10001010;
DmitrijVDN вне форума   Ответить с цитированием
Старый 01.04.2019, 12:48   #212
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,355
Вес репутации: 2386/77
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: xc8

Заметил, что с версии 1.41 пропало описание некоторых битов.
Например, v.2.05 для pic18f25k80 нет битов RB0IE и RXB1IE, пришлось вручную в PIE5 устанавливать.
Сейчас обнаружилось, что нет RB0 и RB1, остальные пины прописаны, а этих двух нет. Использую PORTBbits.RB0 и PORTBbits.RB1.
Кто в курсе, какая вообще тенденция? Переходить на использование структур?
Рак вне форума   Ответить с цитированием
Старый 24.04.2019, 19:45   #213
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 39
Сообщений: 885
Вес репутации: 1338/65
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: xc8

Подскажите как работать с библиотекой?
скачал и установил: xc8-v2.05 и peripheral-libraries-for-pic18-v2.00rc3

беру из MPLAB_XC8_Peripheral_Libraries.pdf пример
Код:
/*********************************************************************
* NOTES:
* Code uses the Peripheral library support available with MCC18 Compiler
* Code Tested on:
* PicDem2+ demo board with PIC18F4685 controller
*
* signal to be converted is fed to AN0 channel.
**********************************************************************/
 
#define USE_OR_MASKS
#include <p18cxxx.h>
#include "adc.h"
 
unsigned int ADCResult=0;
float voltage=0;
 
void main(void)
{
 
    unsigned char channel=0x00,config1=0x00,config2=0x00,config3=0x00,portconfig=0x00,i=0;
 
//-- clear adc interrupt and turn off adc if in case was on prerviously---
    CloseADC();
 
 
//--initialize adc---
/**** ADC configured for:
    * FOSC/2 as conversion clock
    * Result is right justified
    * Aquisition time of 2 AD
    * Channel 1 for sampling
    * ADC interrupt on
    * ADC reference voltage from VDD & VSS
*/
    config1 = ADC_FOSC_2 | ADC_RIGHT_JUST | ADC_2_TAD ;
    config2 = ADC_CH0 | ADC_INT_ON | ADC_REF_VDD_VSS ;
    portconfig = ADC_15ANA ;
    OpenADC(config1,config2,portconfig);
 
 
//---initialize the adc interrupt and enable them---
    ADC_INT_ENABLE();
    //---sample and convert----
    for(i=0;i<16;i++)
    {
    ConvertADC();
    while(BusyADC());
    ADCResult += (unsigned int) ReadADC();
    }
    ADCResult /= 16;
    voltage = (ADCResult*5.0)/1024; // convert ADC count into voltage
 
 
    CloseADC();         //turn off ADC
 
    while(1);                        //End of program
}
получаю ошибку при компиляции
Код:
"C:\Program Files (x86)\Microchip\xc8\v2.05\bin\xc8-cc.exe"  -mcpu=18F248 -c  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -Wa,-a -DXPRJ_default=default  -msummary=-psect,-class,+mem,-hex,-file  -ginhx032 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits   -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o build/default/production/adc_main.p1 adc_main.c 
adc_main.c:12:10: fatal error: 'adc.h' file not found
#include "adc.h"
         ^~~~~~~
 1 error generated.

сам файл лежит в папке компилятора.
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 24.04.2019, 21:51   #214
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,062
Вес репутации: 3977/84
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: xc8

siargy
у Вас сверху в заметке написано, что код годится для MCC18.
что заставляет Вас думать, что вот это вот всё подходит для xc8?
besogon вне форума   Ответить с цитированием
Старый 24.04.2019, 21:55   #215
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 59
Сообщений: 2,435
Вес репутации: 3365/100
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: xc8

Ошибка связанная с отсутствием файла хедера никак не может говорить о непригодности этого хедера для ХС8. Скорее всего, ТС с чего то решил, что среда сама по себе обязана знать пути до MLA или папок компилятора.
Марк вне форума   Ответить с цитированием
Старый 24.04.2019, 22:10   #216
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 39
Сообщений: 885
Вес репутации: 1338/65
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: xc8

Цитата:
Сообщение от besogon Посмотреть сообщение
MCC18.
не придирайтесь к индусам, там весь документ такой.
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 24.04.2019, 22:17   #217
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 39
Сообщений: 885
Вес репутации: 1338/65
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: xc8

Цитата:
Сообщение от Марк Посмотреть сообщение
среда сама по себе обязана знать пути до MLA или папок компилятора.
библиотека ставица в папку компилятора, компилятор выбираеца в свойствах проекта.


по мне так нелогично. при обновлении компилятора библиотеки потеряюца?
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XC8 & OSA вопрос tester-y SSH Инструментарий 3 03.03.2013 07:44
mplabx-1.60 xc8 pic18f14k22 экспорт hex besogon Вопросы начинающих 3 05.02.2013 11:29
mplabx проект на XC8 с модулем на асм. EugenOS Продукция MICROCHIP 8 08.11.2012 21:26
Помогите настроить pic16f1827 в XC8 Urvin Продукция MICROCHIP 1 28.10.2012 12:48


Часовой пояс GMT +3, время: 05:56.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot