Здравствуйте, гость ( Вход | Регистрация )

Рейтинг 4



Дополнительные ссылки

2 страниц V   1 2 >
 | Категория: PIC24
entry 25.3.2010, 11:07
Добавлены макросы для работы с внешними прерываниями и изменениями состояния

Код
  EDGE_INT(Pin1) = 1; - Позволяет установить фронт срабатывания              
    F_INT(Pin1) = 0;       - Позволяет проверить или сбросить флаг            
    P_INT(Pin1,pri);        - установить приоритет обозначенного вывода            
    INTInterrupt(Pin1)     - сделать подстановку в функции обработчика прерывания  
    CH_EN(Pin1) = 1;     - Разрешить контроль изменения состояния              
    CH_PU(Pin1) = 1;     - Включить подтягивающие резисторы


Обновление на 24 марта 2010.

 | Категория: Мои проекты
entry 7.2.2010, 20:49
[attachment=1992:calcCrc32_1.0.0.43.rar] Для повышения надежности устройств часто применяют самодиагностирование контроллера, в ходе которого производится проверка целостности ROM, RAM и работоспособности внешних модулей. Предлагаемый модуль crc32.c предназначен для диагностирования ROM-памяти методом подсчета контрольной суммы ее содержимого и сравнения с зашитой константой. К нему прилагается утилита calcCrc32.exe для управления HEX-файлом: подсчета исходной контрольной суммы и упаковки ее в HEX-файл. Подробности - в файле readme.txt

Только исполняемый файл Прикрепленный файл  calcCrc32_1.0.0.43.rar ( 109.92 килобайт ) Кол-во скачиваний: 219


По просьбе testerа Добавил интеграцию с МПЛАБ
В MPLAB в "Build options/Project/Custom build" в поле "Post-build step" пишу:

Код
"C:\#Work\#Project\Project58\Cod\calcCrc32\calcCrc32.exe" -o C:\#Work\#Project\Project58\Cod\PICC18\Test.crc -e -q


Код
"C:\#Work\#Project\Project58\Cod\calcCrc32\calcCrc32.exe"
Путь к программе Наличие кавычек обязательно
Код
-o C:\#Work\#Project\Project58\Cod\PICC18\Test.crc
Загружаем файл настроек

-о загрузить xx.crc файл
-e выполнить расчет
-q завершить программу

И при каждом build (Ctrl+F10) программа calcCrc32 будет запускаться автоматически, править HEX в соотв. с настройками my_project.crc и сама закрываться.
Но пока компилировать надо два раза.
После первой компиляции правится хекс и crc32.h а после второй компилятор правит cof для симуляции.
Если работать под отладчиком то второй раз можно не компилировать.
Прикрепленные файлы
Прикрепленный файл  TestCrc.rar ( 278.3 килобайт ) Кол-во скачиваний: 230

 | Категория: Переводы
entry 2.4.2009, 14:10
Страничка из описания на С30, управление разрешением и запрещением прерываний
Прикрепленный файл  8.8_ENABLING_DISABLING_INTERRUPTS.pdf ( 50.63 килобайт ) Кол-во скачиваний: 543

Вот и полный перевод нашелся Прикрепленный файл  MPLAB_C_COMPILER.pdf ( 1.52 мегабайт ) Кол-во скачиваний: 1560

 | Категория: Переводы
entry 4.3.2009, 19:28
Нумерация страниц и расположение абзацев соответствует оригиналу.

Параграф содержит описание портов ввода/вывода.
Прикрепленный файл  Section_9.0__PORTS.pdf ( 71.13 килобайт ) Кол-во скачиваний: 615

Параграф содержит описание тактовых генераторов, настройки и переключения между ними.
Прикрепленный файл  Section_7.0_OSCILLATOR_CONFIGURATION.pdf ( 131.83 килобайт ) Кол-во скачиваний: 451

Надеюсь, что прогресс имеется. В этом деле мне оказал неоценимую помощь Romantic

Полезно почитать обзорные статьи по 16 битным микроконтроллерам от Microchip Technology Inc
Тут можно найти перевод документации по PIC24H
На сайте Валентина Володина можно найти переводы ds30F MPLAB ASM30 Ассемблера и много другой полезной информации.

 | Категория: PIC24
entry 2.3.2009, 19:06
В продолжение разговора о макросах для работы с портами начатого здесь
Выкладываю откорректированный файл макросов для работы с портами. Оригинал
Для работы необходимо прочитать статью и скачать необходимый для работы файл bfa.h.
Обновление на 24 марта 2010.
Прикрепленный файл  c30portmacros_1.0.36a_.rar ( 3.94 килобайт ) Кол-во скачиваний: 140

Добавлены макросы для работы с внешними прерываниями и изменениями состояния
Код
Определив вывод для внешнего прерывания  BIT_DATA   A, 14, H
Можно сделать
   EDGE_INT(Pin1) = 1;       - Позволяет установить фронт срабатывания              
   F_INT(Pin1) = 0;          - Позволяет проверить или сбросить флаг            
   P_INT(Pin1,pri);          - установить приоритет обозначенного вывода            
   INTInterrupt(Pin1)        - сделать подстановку в функции обработчика прерывания  
Определив вывод для контроля изменения  BIT_DATA   B, 15, H
   Можно сделать
   CH_EN(Pin1) = 1;          - Разрешить контроль изменения состояния              
   CH_PU(Pin1) = 1;          - Включить подтягивающие резисторы


Обновление на 5 апреля 2009
Прикрепленный файл  c30portmacros.rar ( 1.42 килобайт ) Кол-во скачиваний: 227

Добавил настройку УАРТов выглядит это так
Описываем скорость и номкр порта
Код
#define BRGUART2          9600, 2

До использования задаем частоту генератора
Код
#define FREQ  8000000           // Частота генератора в герцах

Макрос так выглядит.
Код
#define TST_BRGH(uartN)       BFA(BFA_RD, U##uartN##MODE, BRGH)
   #define _setBrg(valBrg,uartN) if(TST_BRGH(uartN))                 \
                                 U##uartN##BRG=(FREQ)/2/4/(valBrg)-1;\
                                 else                                \
                                 U##uartN##BRG=(FREQ)/2/16/(valBrg) -1;
   #define SET_BRGH(x)           _setBrg(x)

Применяем так
Код
SET_BRGH(BRGUART2);

Добавил макрос для инструкции DISI
Код
#define DISI(n) \
     asm volatile ("disi #%0" \
     : /* no outputs */ \
     : "i" (n))


С учетом версии 1.0.24 (от 4 марта 2009) файла bfa.h который надо включить в проект для возможности обоюдного использования макросов.
Прикрепленный файл  c30portmacros1024.rar ( 1.17 килобайт ) Кол-во скачиваний: 423


Исправил по состоянию на 03 03 2009 с учетом атомарной работы.
Прикрепленный файл  c30portmacros.rar ( 1.17 килобайт ) Кол-во скачиваний: 204



Макрос позволяет однажды определив вывод
Код
#define  LED0     A, 10, L
      #define  LED1     A, 7,  L
      #define  LED2     A, 8,  L

производить с ним следующие действия

Код
  
     OFF(LED0); //Погасить светодиод
      OFF(LED1); //Погасить светодиод
      OFF(LED2); //Погасить светодиод
      
      
      if(SIGNAL(KN0)) //проверить кнопку
      {
       .............
      }
      
      OPEND_DRAIN_ON(OUT0);   // Установить режим выхода с открытым сток
      SET_DIR(OUT0,Out);      // Настроить на вывод
      AD1PCFG = ENABLE_ALL_DIG_0_15;
      ANALOG_INPUT_ON(1);     // Подключить аналоговый вход
      ANALOG_INPUT_OFF(1);    // Отключить аналоговый вход
                        
      if (SIGNAL(IMPUT0))     // На входе уровень активный?
      ON(OUT0);               // Установить активный уровень
      OFF(OUT0);              // Сбросить активный уровень
      HIGH(OUT0);             // Установить высокий уровень
      LOW(OUT0);              // Установить низкий уровень
      TOGGLE(OUT0);           // Инвертировать выход
      if (LATCH(OUT0))        // Уровень активный?
      if (DIR_IS_OUT(OUT0))   // Направление на вывод?
      if (DIR_IS_IN(OUT0))    // Направление на вход?
      Tmp = BITNUM(OUT0);     // Возвращает номер бита

Дя работы с аналоговыми входами надо добавить #include "adc.h"


Для работы с TNKernel привязывая системные тики к миллисекундам удобно пользоваться таким макросом
Код
#define FREQ  8000000           // Системная частота в Герцах
          #define OS_TMR_TICK 5000        // Количество тактов процессора в одном системном тике
          /* Количество системных тиков в миллисекундах */
          static inline unsigned OS_MS(unsigned var)
          {
             return FREQ / 2 / 1000 * (var) / OS_TMR_TICK;
          }

И например так ret = tn_task_sleep(OS_MS(100)); используя можно надеяться, что время через которое может быть вызвана задача будет около 100 мСек.

Тоже только для jacOs и PICC18 будет выглядеть так
Код
#define FREQ  8000000           // Системная частота в Герцах
          #define OS_TMR_TICK 5000        // Количество тактов процессора в одном системном тике
          /* Количество системных тиков в миллисекундах */
          static inline unsigned OS_MS(unsigned var)
          {
             return FREQ / 4 / 1000 * (var) / OS_TMR_TICK;
          }

entry 17.2.2009, 12:16
Вот такой простенький блок питания позволит питать разрабатываемые USB устройства. Ничего сверхъестественного но устройство будет получать нужное питание и самое главное USB порт будет защищен.
В приложении файлы в формате ПКАД2006 и ПКАД2002.
Прикрепленные изображения
Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  Power.rar ( 32.88 килобайт ) Кол-во скачиваний: 420
Прикрепленный файл  Power2002.rar ( 26.21 килобайт ) Кол-во скачиваний: 335

 | Категория: Переводы
entry 20.1.2009, 10:14
Описаны способы подключения выводов периферии на нужный вывод для семейства PIC24FJ64GA004

Действительно было очень плохо, в таком виде оно никому не надо.

Поправил, надеюсь теперь будет лучше. Выводы сделал.

Кто увидел ошибку прошу поправить.
Прикрепленные файлы
Прикрепленный файл  Section_9.4_Peripheral_Pin_Select.pdf ( 159.12 килобайт ) Кол-во скачиваний: 730

 | Категория: Переводы
entry 13.1.2009, 11:53
Описаны режимы применяемые для сокращения потребления энергии применяемые в микроконтроллерах PIC24F.

Если кто найдет ошибку прошу поправить.
Прикрепленные файлы
Прикрепленный файл  Section_8.0_POWER_SAVING_FEATURES.pdf ( 64.54 килобайт ) Кол-во скачиваний: 6429

 | Категория: Переводы
entry 11.1.2009, 12:41
Нашел несколько несоответствий в таблицах, поправил как считаю нужным.

Если кто найдет ошибки просьба поправить.
Прикрепленные файлы
Прикрепленный файл  Section_6.0_INTERRUPT_CONTROLLER.pdf ( 220.38 килобайт ) Кол-во скачиваний: 1957

entry 15.12.2008, 17:04
Финальная версия клона моей работы. Впервые эта версия появилась приблизительно 2 года назад. В сентябре 2007 года я её несколько переработал и выложил электрониксе. После этого были небольшие доработки учтенные в этом варианте. Этот вариант я сделал более сотни раз и он работает в Украине и России с пиками 16,18,24 серий.
Во вложении файл в формате ПИКДа 2006 и спецификация к нему.

В виду большого количества вопросов, добавил прошивку. Прикрепленный файл  Firmwares.rar ( 14.17 килобайт ) Кол-во скачиваний: 736


PcbПрикрепленный файл  Clone_ICD2.rar ( 70.24 килобайт ) Кол-во скачиваний: 913

По пожеланиям трудящихся одна из первых версий Микрочиповского ИСД2
Прикрепленный файл  ICD2_Microchip.pdf ( 77.03 килобайт ) Кол-во скачиваний: 898

Прикрепленные изображения
Прикрепленное изображение Прикрепленное изображение

2 страниц V   1 2 >