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

transmash

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. B) Ну в общем то проблема решилась после перехода на IAR-овский компилятор. Конфиг в IAR написал так: #define ... __intrinsic void cofig() { __set_configuration_bits (CONFIG1H, HS_OSC_1); .... __set_configuration_bits (CONFIG7H, 0); } main() { .... } Почему в MPLab получалась фигня, вроде ж производитель компилятора и проца один и тот же? :smile3046:
  2. Попытаюсь описать проблему(мы): - при компиляции проекта в MPLab, получаемый *.cof или *.hex загружаю в протеус все идеально работает, а при прошивке в железо - устройствоработает но не полностью правильно, т.е. в некоторых глобальных переменных оказваются не те значения (при инициализации переменные обнуляются). Что это - бок компилятора (mcc18), бок железа или кривые руки? - при попытке скомпилить проект под IAR (переделал инициализацию таймеров(потому что в IAR нет такого ресурса как в MPLab для работы с таймерами), пока не написал конфигурацию (потому что незнаю как)) в протеусе не пашет. При отладке в протеусе видно что программа стартует не с main(), а из середины одной из процедур и перескакивает в середену другой процедуры и на этом циклится. - как писать конфигурацию в IAR т.е. где правильно писать __set_configuration_bits (в MPLab писалась директива #pragma romdata CONFIG, а как быть в IARе) Выручайте бо хана :maniac:
  3. PIC18f1320

    *Leks* :cheers: Все решилось установкой кодепротекшена в конфиге, изначально он был отключен. Т.е.: #define conf5l 0x00 // #define conf5h 0x00 // #define conf6l 0x00 //Всякий кодепротекшн #define conf6h 0x00 // #define conf7l 0x00 // #define conf7h 0x00 // Всем Спасибо!
  4. PIC18f1320

    Конфиг настраивал по мплабовскому конфигу #define conf1l 0xFF #define conf1h 0xF2 //HS-oscilator, fail-safe clock enable, Internal External Switch Over Mode #define conf2l 0x00 //Power Up Timer enable, Brown Out Detect Disabled, Brown Out voltage 4.5V #define conf2h 0x00 //Watchdog Timer Disabled, Watchdog Postscaler 1:1 #define conf3l 0x00 #define conf3h 0x80 //Master Clear Enable (MCLR enabled, ra5 input disabled) #define conf4l 0x04 //Stack overflow reset disabled, low voltage program enabled #define conf4h 0xFF #define conf5l 0x03 // #define conf5h 0xC0 // #define conf6l 0x03 //Всякий кодепротекшн #define conf6h 0xE0 // #define conf7l 0x03 // #define conf7h 0x40 //
  5. PIC18f1320

    Выполняю простое действие - запись 1 в порт. Но на выходе порта получаю 1В. Что не так? Ниже привожу код. #include <p18f1320.h> #include <timers.h> #include <stdlib.h> #define conf1l 0xFF #define conf1h 0xF2 #define conf2l 0x00 #define conf2h 0x00 #define conf3l 0x00 #define conf3h 0x80 #define conf4l 0x04 #define conf4h 0xFF #define conf5l 0x03 #define conf5h 0xC0 #define conf6l 0x03 #define conf6h 0xE0 #define conf7l 0x03 #define conf7h 0x40 #pragma romdata CONFIG _CONFIG_DECL(conf1h,conf2l,conf2h,conf3l,conf3h,conf4l,conf5l,conf5h,conf6l,conf 6h,conf7l,conf7h); #pragma romdata void init_io(void) { ADCON1=0x7f; TRISA=0; } void main() { init_io(); do { PORTAbits.RA1=1; LATAbits.LATA1=1; } while(1); } Заранее списибо.
×
×
  • Создать...