14 сообщений в этой теме

larivlad    0

Здравствуйте.

Пишу и отлаживаю свои программы на MPLAB. Проблем нет.

Решил попробовать писать на языке С и установить MicroC for pic и столкнулся со следующей проблемой:

открываю проект примера Timer0 Interrupt и запускаю отладку программы. Выбираю регистр Tmr0 для контроля

и пошагово прохожу по программе, а изменений в таймере почему-то не происходит,

также не происходит и вызова Interrupt. Помогите разобраться почему пример предложенный самим MicroC for pic не работает.

Поделиться сообщением


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Vovka    23

Начну с совета: забыть о MicroC и поставить, например, xc8

Прерывания разрешены? Таймер сконфигурирован и запущен?

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UVV    34

MicroC for pic отличная программа не чата замудрёной MPLAB

  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
солар    116

Вопрос

В 07.06.2017 в 16:58, larivlad сказал:

Помогите разобраться почему пример предложенный самим MicroC for pic не работает

, а не какую IDE можно ещё использовать и почему. Умники, ёпта...

Изменено пользователем солар

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484
3 часа назад, UVV сказал:

MicroC for pic отличная программа не чата замудрёной MPLAB

Вы работник Микроэлектроники чтоли, такие лозунги выкрикиваем ? Или просто кроме микроси ничего в глаза не видели ?
MPLAB не замудрёная, MPLAB - инструмент от производителя. А микроси - сторонняя какашка. Что сама IDE, что их недокомпилятор.

Не надо тут ля-ля...

 

В 7 июня 2017 г. в 15:58, larivlad сказал:

также не происходит и вызова Interrupt.

Избитая тема. MicroC в отладке - г..но. В прерывания не входит, watch'и отстойные, ... 
Если решили перейти с АСМа на Си, то просто поставьте сишный компилятор и не наживайте гемор. Иначе так ничему не научитесь, кроме как задавать на форумах вопросы ардуинщиков, типа "Помогите найти библиотеку", "Почему вот этот код не работает ?", и т.д...
 

  • Одобряю 2
  • Не одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UVV    34

У MicroC процесс создания нового проекта очень прост и понятен, биты конфигурации определяются до входа в текстовый процессор, так же до можно подключить либы и инклюды, Инсталяция самой MicroC занимает пару минут и после инсталяции не чего и не куда не надо настраивать до устанавливать какие то дополнения пути прописывать. Про её отладчик не скажу так как не пользуюсь но глюков с готовыми прошивками ещё не когда не возникала а если и возникал глюк то это от собственных недоделок и невнимательности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484
1 час назад, UVV сказал:

У MicroC процесс создания нового проекта очень прост и понятен

В MPLAB'е тоже всё понятно и элементарно. Проект создаётся в несколько кликов мыши.

1 час назад, UVV сказал:

биты конфигурации определяются до входа в текстовый процессор

Вы наверное имели в виду "редактор", а не "процессор".
Не вижу тут плюсов, в плане "до". Есть разница когда их ставить, "до" или "во время" ? В MPLAB'е их можно тоже мышкой устанавливать, не прописывая в коде.

Цитата

так же до можно подключить либы и инклюды

Не вижу проблем написать пару строк со словами "include". По сравнению с основной программой - это микроб.

Цитата

Про её отладчик не скажу так как не пользуюсь но глюков с готовыми прошивками ещё не когда не возникала

Значит Вы просто ещё не писали серьёзные программы. Отладка - необходимая вещь, с которой сталкиваешься постоянно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vovka    23
13 часа назад, UVV сказал:

MicroC for pic отличная программа не чата замудрёной MPLAB

Без обид, но это ответ студента, который кроме как мигалки на светодиоде ничего не писал!

1 час назад, UVV сказал:

У MicroC процесс создания нового проекта очень прост и понятен, биты конфигурации определяются до входа в текстовый процессор, так же до можно подключить либы и инклюды, Инсталяция самой MicroC занимает пару минут и после инсталяции не чего и не куда не надо настраивать до устанавливать какие то дополнения пути прописывать. Про её отладчик не скажу так как не пользуюсь но глюков с готовыми прошивками ещё не когда не возникала а если и возникал глюк то это от собственных недоделок и невнимательности.

Так поставьте MPLAB X - там есть конфигуратор. Лично мне MPLAB X не понравился и я по прежнему на MPLAB IDE, а конфигурирую в отдельном файле.
ГЛЮКОВ НЕТ??? Да я на всю жизнь запомнил, когда готовый проект на PIC18F46K22, память была заполнена где-то на 90%, добавляю простую задержку из пары nop-ов и после этого прошивка перестает работать! А заказчик нервничает! И как я потом срочным образом все это дело переносил на MCC18...
Если бы мне кто раньше такое сказал, то я бы в жизни MicroC  не поставил!

22 минуты назад, Alex сказал:

Значит Вы просто ещё не писали серьёзные программы. Отладка - необходимая вещь, с которой сталкиваешься постоянно.

Я в последнее время, где это возможно, поступаю так: в main.c, в функции main() делаю инклуд файла с кодом этой функции. В Visual C++ делаю программку и вставляю этот файл. Отлаживается все без глюков, плюс делаю визуальный интерфейс, который можно показать заказчику. Потом в MPLAB компилирую прошивку и заливаю - очень удобно! Т.е. вся основная работа по написанию логики прошивки идет в Visual C++. Хотя можно и без MPLAB компилировать через bat-файл...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UVV    34

Тут как говорится кто к чему привык. Отлаживаю в proteus-е. Максимум писал под pic18f4550. Я с начало хотел тоже начать с MPLAB на HI-tec-е но уж очень там было всё забубённо, потом вышел на микрос и всё пошло. 

Не надо здесь людям руки отбивать от мирос всё в ней нормально.

Последнее что писал для мк это передача USART по радиоканалу на модулях DRA889TX и DRA887RX, один приёмник и 50 передатчиков. Пришлось придумать небольшой протокол передачи данных и все тайминги на ошибки потери пакетов также приём и передачу всё обрабатывал в прерывании да ещё и дисплей знакосинтез. пришлось прикрутить к приёмнику для отображения какой когда сработал датчик. Да и всё это должно было быть подвешено через сторожевую собаку.

Но увы заказчик смылся и на связь не выходил.

Изменено пользователем UVV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
larivlad    0
22 часа назад, UVV сказал:

MicroC for pic отличная программа не чата замудрёной MPLAB

unsigned cnt;

void interrupt() {
  if (TMR0IF_bit) {
    cnt++;                 // increment counter
    TMR0IF_bit = 0;        // clear TMR0IF
    TMR0   = 96;
  }
}

void main() {
  OPTION_REG = 0x84;       // Assign prescaler to TMR0
  ANSEL  = 0;              // Configure AN pins as digital
  ANSELH = 0;
  C1ON_bit = 0;            // Disable comparators
  C2ON_bit = 0;
  TRISB = 0;               // PORTB is output
  PORTB = 0xFF;            // Initialize PORTB
  TMR0  = 96;              // Timer0 initial value
  INTCON = 0xA0;           // Enable TMRO interrupt
  cnt = 0;                 // Initialize cnt

  do {
    if (cnt >= 400) {
      PORTB = ~PORTB;      // Toggle PORTB LEDs
      cnt = 0;             // Reset cnt
    }
  } while(1);
}

Вот такой код примера из папки для 16f887. Все регистры загружаются при отладке верно, а в таймере значение 96

и не увеличиваются при отладке.

Может я какой кривой microc поставил? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UVV    34

Версия какая микроси ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
larivlad    0

На одном компьютере 5.61, на другом 6,61 и работают все одинаково.

Нужно было написать простую програмку для измерения 

длительности входного импульса используя таймер 1. Хотел попробовать на С.

Написал откомпеллировал.

А таймер при отладке молчит. Вот потом я и решил попробовать  пример от microc. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UVV    34

@larivlad привет.

Вот тебе пример для PIC16F677A таймер считает секунды минуты часы но под 

593d55727aec9_.GIF.1facb7098625aa9e634d84f6b0f67245.GIF

в общем по переполнению TMR1 происходит прерывание в котором инкрементируется переменная tmr_sec а в основном цикле программы выполняется счёт минут и часов и вывод этого всего на дисплей.

Всё это дело можно спокойно отлаживать вот в такой программе

593d56e615d2c_3.GIF.865ec0a14f6c3e30da9987ea6e29a313.GIF 

это её рабочая область с лева окно Watch Window отображаются регистры МК а с права сама схема.

593d58d15aa31_4.thumb.GIF.4c4d340ed58f8af505499cf7f11dc160.GIF

тут в архиве весь проект 1.rar

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dosikus    5
В 09.06.2017 в 11:37, UVV сказал:

Не надо здесь людям руки отбивать от мирос всё в ней нормально.

Приведите исходники встроенных либ. И каким  чудом вы будете трассировать их чудный код.

  Если вам это ничего не говорит, и вы уверовали в непогрешимость продуктов МикроЕ , то свой шаг в ардунью вы уже сделали. Вляпались по самое немогу ...

  • Одобряю 1

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: karomag
      Добрый день.
      Экспериментирую с подключение 7-сегментного индикатора к мк stm32. Индикатор с общим катодом. Соответственно для вывода цифры необходимо на анод каждого сегмента подать 1, а на общий катод 0. И тут я не могу понять какие токи будут через порты. Теоретически, пины МК подключенные через резистор 300 Ом к аноду (напряжение МК 3.3 В) то ток будет 4 мА, тогда на общем катоде должно быть 7 * 4 = 28 мА (цифра 8, т.е. горят все сегменты). Т.е. это небольшое, но превышение макс тока на ногу 20 мА. И надо общий вывод подключать через транзисторный ключ.
      Взял мультиметр. Результаты замера: ток каждого сегмента ~2.5 мА, ток общего катода 5 мА. Вот тут я подумал о школе Хогвардс))) Как все таки рассчитывается все таки ток на общем выводе? 
    • Автор: art_budka
      Ищу подрядчика для разработки проекта робота-рисовальщика. Есть бюджет, ТЗ. 
      Устройство представляет собой манипулятор передвигающий головку в плоскости XY в пределах жесткой рамы на которой установлены двигатели и направляющие перемещения. Головка представляет собой блок, отвечающий за передвижение закрепленного в фиксаторе объекта-пера по оси Z на расстояние до 20 мм. Фиксатор на элементе подъёма головки должен обеспечить жесткое закрепление предметов массой 10 - 80 грамм - кистей, шариковых ручек, карандашей и маркеров диаметром от 5 до 20 мм.
      Решение необходимо для обеспечения точных, многократно повторяющихся перемещений “пера” над плоской поверхностью. Для формирования движений в устройстве должна быть реализована электромеханическая схема, подключенная посредством USB-интерфейса к персональному компьютеру для отправки команд на манипулятор и получения обратной связи от контроллера манипулятора. 
      ТЗ, смета и бюджет через art_budka@rambler.ru 
    • Автор: green_whale
      Доброго времени суток.
      Собственно, сразу к делу. Необходимо измерить вч напряжение (частота порядка 20кГц, максимальная амплитуда 75мВ) с помощью микроконтроллера (скорее всего будет использоваться Arduino).
      Форма входного сигнала - пила (возрастает от минимального значения до максимального). Сигнал однополярный.
      Измерить нужно именно максимальное значение входящего сигнала. Измерение должно быть весьма точным (желательно, чтобы погрешность не превышала 1-2%).
      Есть пару идей :
      1. Сгладить сигнал, используя пиковый детектор (сможет ли сигнал такой частоты и формы зарядить конденсатор?).
      2. Использовать цап для генерации постепенно снижающегося напряжения и аналоговый компаратор.

      Надеюсь, кто-нибудь уже решал подобную проблему и сможет помочь советом или схемой.
    • Гость мистер_чувак
      Автор: Гость мистер_чувак
      Здравствуйте. Нашёл свои старые китайские портативные колонки, которые давно уже разобрал и потерял некоторые провода. Помогите разобраться, что к чему соединять, чтобы работало.
      фотка1
      фотка2
      фотка3
      фотка4
      фотка5
      фотка6
      фотка7
    • Автор: butyavk
      Компания "Диаконт" приглашает на собеседование по вакансии инженер-программист микроконтроллеров.
      Мы производим и поставляем современные приборы управления электроприводами для различных отраслей отечественной промышленности.
      Пополняем нашу команду программистов (готовы принять 2-3 кандидатов с различным опытом работы)!

      Основные обязанности:
      Разработка программного обеспечения для блоков управления приводами и др. вычислительных систем.
      Программирование на C++ микроконтроллеров фирмы Texas Instruments и НИИЭТ на базе ядра ARM Cortex-M4.
      Поддержка и доработка существующего программного обеспечения.
      Участие в научно-исследовательских и опытно-конструкторских работах.
      Участие во внедрении систем на объектах (редкие командировки).

      Требования к кандидатам:
      Хорошее знание схемотехники;
      Знание методов разработки и проектирования ПО для микроконтроллеров и опыт работы с их периферией;
      Знание основ управления электроприводами и ТАУ;
      Знание языков программирования высокого уровня (C++, C);
      Знание современных методов разработки ПО (ООП, ...);
      Знание английского языка (чтение технической документации);
      Приветствуется знание Python, Matlab/Octave;
      Дополнительным плюсом будет опыт автоматизированного тестирования встроенного ПО.

      Условия:
      Оплата полностью белая (на руки в зависимости от знаний и опыта от 50 000 руб до 100000 руб). Но, готовы обсуждать!;
      Карьерный и профессиональный рост;
      Предприятие с комфортными условиями труда на севере города;
      ДМС;
      График работы понедельник - пятница 9:00-17:40;
      Плавающее начало работы с 8:00-10:00;
      Льготное питание в столовой на территории предприятия;...

      Ключевые навыки
      Программирование микроконтороллеров
      C/C++
      Управление электродвигателями

      Адрес
      Санкт-Петербург, ул. Учительская 2, м. Гражданский проспект

      Тип занятости
      Полная занятость, полный день

      Резюме лучше отправлять на rykov@diakont.com