Перейти к содержанию

Вопрос про MPLAB Code Configurator и PIC18F4550


vv7

Рекомендуемые сообщения

Добрый всем вечер ! В общем решил воспользоваться "MPLAB Code Configurator" плагином для MPLAB X. По сути ... очень удобная вещь ! Но вот нет поддержки моего пика PIC18F4550 ! Компилятор XC8 Скриншот ошибки в атаче. 

11.png

Поменял в проекте на PIC18F45K50 плагин окрылся ( 2 скриншот )

12.png

Написал код:

Скрытый текст

/**
  Generated Main Source File

  Company:
    Microchip Technology Inc.

  File Name:
    main.c

  Summary:
    This is the main file generated using MPLAB(c) Code Configurator

  Description:
    This header file provides implementations for driver APIs for all modules selected in the GUI.
    Generation Information :
        Product Revision  :  MPLAB(c) Code Configurator - 4.0
        Device            :  PIC18F45K50
        Driver Version    :  2.00
    The generated drivers are tested against the following:
        Compiler          :  XC8 1.35
        MPLAB             :  MPLAB X 3.40
*/

/*
    (c) 2016 Microchip Technology Inc. and its subsidiaries. You may use this
    software and any derivatives exclusively with Microchip products.

    THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
    EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
    WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
    PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION
    WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION.

    IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
    INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
    WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
    BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
    FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
    ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
    THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.

    MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE
    TERMS.
*/

#include "mcc_generated_files/mcc.h"

/*
                         Main application
 */
static int ms = 0, led = 0, turn = 0, time = 100, back = 0;
void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();

    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global and Peripheral Interrupts
    // Use the following macros to:

    // Enable high priority global interrupts
    //INTERRUPT_GlobalInterruptHighEnable();

    // Enable low priority global interrupts.
    //INTERRUPT_GlobalInterruptLowEnable();

    // Disable high priority global interrupts
    //INTERRUPT_GlobalInterruptHighDisable();

    // Disable low priority global interrupts.
    //INTERRUPT_GlobalInterruptLowDisable();

    // Enable the Global Interrupts
    //INTERRUPT_GlobalInterruptEnable();

    // Enable the Peripheral Interrupts
    //INTERRUPT_PeripheralInterruptEnable();

    // Disable the Global Interrupts
    //INTERRUPT_GlobalInterruptDisable();

    // Disable the Peripheral Interrupts
    //INTERRUPT_PeripheralInterruptDisable();
    
    while (1)
    {
        if ( TMR0_HasOverflowOccured() ) {
            ms++;
		if ( ms == time ) {
            if ( turn == 0 ) { led++; } else { led--; };
            if ( time == 0 ) { back = 1; } else { if ( time == 100 ) { back = 0; } } ;
            switch ( led ) {
                case 1:
                    PORTB = 0b11111101;
                    if ( back == 0 ) { time--; } else { time++; }
                    if ( turn == 1 ) { turn = 0; };
                    break;
                case 2:
                    PORTB = 0b11111011;
                    break;
                case 3:
                    PORTB = 0b11110111;
                    break;
                case 4:
                    PORTB = 0b11101111;
                    break;
                case 5:
                    PORTB = 0b11011111;
                    break;
                case 6:
                    PORTB = 0b10111111;
                    break;
                case 7:
                    PORTB = 0b01111111;
                    turn = 1;
                    break;
            }
            ms = 0;
        } 
        }
    }
}
/**
 End of File
*/

 

Который по сути должен прекрасно работать, ибо работает даже в протесе на мк PIC18F4550. Нго только я пытаюсь заставить его работать в живой среде. Перепрашиваю через прогу Standalone, вставляю в плату и ничего. Если написать тоже самое под PIC18F4550 без использования Code Configurator'а, то всё робит. 

Собсно вопросы:

  1. Как заставить прошивку под Pic18F45K50 работать под PIC18F4550 и возможно ли такое. Я понял из даташит что у нх отличается только только ADC и по другому построен внутренний осцилятор. Но так ведь они схожи, только один поддерживается Этим Плагином, а другой - нет.
  2. Может кто знает когда примерно появиться поддержка этого мк. Слышал компания "microchip" сейчас как раз и занимается интегрированием старых мк в новые структуры. Сверху Вниз. Недавно и PIC18F45K50 не поддерживался.
  3. На графике в осцилятор появляется какая-то огромная частота после прохождения всего цикла switch(). Я не могу понять почему. ( Всё в последнем скриншоте )

15.png

Неужели это всё из-за разности мк ?

Страничка с поддерживаемыми пиками Тут.

На компиляторе C18 ткакая же задача работает без проблем.

Код: 

Скрытый текст

/* 
 * File:   newmain.c
 * Author: X3
 *
 * Created on 12 декабря 2016 г., 18:09
 */

#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <timers.h>

static int ms = 0, led = 0, turn = 0, time = 100, back = 0;
void low_isr(void);
void high_isr(void);

#pragma code high_vector=0x08
void interrupt_at_high_vector(void)
{
  _asm GOTO high_isr _endasm
}

#pragma code
#pragma interrupt high_isr
void high_isr (void) {
    if (INTCONbits.TMR0IF){
        INTCONbits.TMR0IF = 0;
        TMR0H = 0xF7;
        TMR0L = 0x50;
        ms++;
    }
}

int main(int argc, char** argv) { 
    
    ADCON1 = 0x0F;
    T0CON = 0b10001000;
    TMR0H = 0xF7;
    TMR0L = 0x50;     
    INTCON = 0x20;
    INTCON2 = 0x04;
    RCONbits.IPEN = 1;
    INTCONbits.GIEH = 1;
    
    TRISB = 0x00;
    PORTB = 0xFF;
    
    while(1){
		if ( ms == time ) {
            if ( turn == 0 ) { led++; } else { led--; };
            if ( time == 0 ) { back = 1; } else { if ( time == 100 ) { back = 0; } } ;
            switch ( led ) {
                case 1:
                    PORTB = 0b11111101;
                    if ( back == 0 ) { time--; } else { time++; }
                    if ( turn == 1 ) { turn = 0; };
                    break;
                case 2:
                    PORTB = 0b11111011;
                    break;
                case 3:
                    PORTB = 0b11110111;
                    break;
                case 4:
                    PORTB = 0b11101111;
                    break;
                case 5:
                    PORTB = 0b11011111;
                    break;
                case 6:
                    PORTB = 0b10111111;
                    break;
                case 7:
                    PORTB = 0b01111111;
                    turn = 1;
                    break;
            }
            ms = 0;
        }
    }
    return 0;
}

 

16.png

Спасибо всем огромное !!!

Изменено пользователем vv7
Добавил C18
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А например. Какие бы вы посоветовали ? Конечно ... хочется использовать и эти, но можно посмотреть и на новые. 

У меня кстате получилось запустить прошивку под PIC18F45K50 на PIC18F4550, я только поменял биты конфигурации на 18F4550. Остался только непонятная и бешеная частота, как на втором скриншоте. Не могу понять почему. Тот же код прекрасно работает под C18 комп. ... 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...