mx88v462 Импорт библиотеки.

Тема в разделе "Arduino & Shields", создана пользователем Alexey Zhigalo, 19 ноя 2015.

  1. Спасибо, сам очень рад, думал уже ничего не получиться..
    Забыл про это.. И как я понял надо переименовать из "system.c" в "system.h"
    Эта библиотека от AVR Studio, надо ли ее подключать для Arduino ?
    То есть надо найти все функции в *.cpp перенести в заголовочный файл ?
    То есть от кварца ? Или от чего то другого ?
    На обоих микросхемах выводы SDA SCL идентичны.
    SDA_PIN PC4 |A4|
    SCL_PIN PC5 |A5|

    Только на Atmega163
    SDA 23 контакт
    SCL 24 контакт

    на Atmega328
    SDA 27 контакт
    SCL 28 контакт

    :
     
  2. Alex19

    Alex19 Гуру

    Да.

    Тогда нет, раз Вы переходите на ардуину, я просто не глянул, что это.

    Да.

    От частоты работы микроконтролера.

    Я говорил о AVR_Initial, KEY_DEC и других KEY_.

    Это что новенькое, а Вы их считаете по номерам самой микросхемы:), немного не привычно. Обычно A4, A5 или PC4, PC5.

    Раз Вы переходите на Ардуину, библиотеку возьмем стандартную и Вам будет проще. Моя хороша когда нужна максимальная скорость. Но со стандартной больше примеров и она проще.
     
  3. Нет, это просто разные микросхемы, а так порт С 4 и 5
    SDA PC4
    SCL PC5
     
  4. Alex19

    Alex19 Гуру

    Это не просто библиотека от AVR Studio как и KEY_DEC, KEY_SET, KEY_INC. Она используются в функции MXIC_OSD_Menu.

    Код в прищепке, останется разобраться с данными портами в файле Osd.cpp функция MXIC_OSD_Menu.

    Что у Вас на этих портах, в частности PB0-PB2?
     

    Вложения:

    • mx88v462_2.zip
      Размер файла:
      7,7 КБ
      Просмотров:
      210
  5. Как я понял эта функция для вывода меню и отрисовки "прицела"..
    В принципе "прицел" мне не нужен...

    А на PB0-PB2 автор скорее всего повесил кнопки для управления "прицелом" и меню.
    Спасибо, завтра попробую, как будет, отпишусь..
     
  6. Увы, но дисплей на arduino не поднялся... Дисплей просто светиться белым...
     
  7. В Proteus подключил Atmega328 и Atmega16.
    В Atmega328 залил hex файл скомпилированным в Aruino IDE
    В Atmega16 залил hex файл, тот с которым инициализировался дисплей и вывел текст.

    Подключил осциллограф к SDA SCL обеих микроконтроллеров.
    Chanel A - желтый -> SDA Atmega328
    Chanel B - синий -> SCL Atmega328

    Chanel C - красный -> SDA Atmega16
    Chanel D - зеленый -> SCL Atmega16

    И проблема в том, что сигналы не совпадают, скважность и сам сигнал.
    Частота кварцов одинаковая, 16M

    1.JPG

    [​IMG]

    Может не объективно, но по моему мнению сигналы совсем разные..
    Настоящего осциллографа нету что бы проверить.
     

    Вложения:

    • 2.JPG
      2.JPG
      Размер файла:
      85,6 КБ
      Просмотров:
      832
  8. Alex19

    Alex19 Гуру

    Только приехал с командировки.

    К сожалению в pdf нет описания работы с самой шиной, частота, тайминги и т.д. Попробую найти, но пока поиски не увенчались успехом.

    Частота разумеется не совпадет, но нас это не интересует.
    К примеру обычные часы DS1307 могут работать как на скорости 50Khz, так и 100Khz. Тем более, что мы сделали тест работы стандартной библиотеки, которая работает на 100Khz, если скажите частоту каналов C и D, можно запустить стандартную библиотеку на другой частоте.

    То что там используется I2C, у меня нет сомнения. Это отчетливо видно на каналах C и D. Канал B тоже в норме (просто частота выше), а вот канал A выглядит странно, кажется, что идут одинаковые байты.

    Кроме того, на форуме http://radiokot.ru/forum/viewtopic.php?p=2056992#p2056992, описан формат I2C
    Правда есть одно интересное сообщение, которое мне не понятно, как я понял речь идет о t112.
    Можно предположить, что чип не может работать на такой скорости, но мы делали тест на стандартной библиотеке.

    Осциллограф, в данном вопросе менее полезен, чем логический анализатор к примеру Saleae Logic 16. На форуме http://radiokot.ru/forum/viewtopic.php?p=2056812#p2056812 писали:
    Сейчас это не так, сохраняет все необходимое, сам пользуюсь им одни позитивные эмоции.

    Что можно сделать:
    1. Найти/купить логический анализатор. Если нет, писать работу с регистрами в UART и сравнить запись и чтение регистров.

    Если все одинаково.
    2. Можно попробовать подключить их софт реализацию I2C. Или снизить частоту стандартной библиотеки.

    Так же предлагаю, если есть TeamView и Skype, можем попробовать решить проблему вместе. В понедельник вторник, я попробую подготовить варианты, кода для анализа регистров, так же подготовлю проверку 2 варианта. Думаю, что проблема в какой-то мелочи, которую упускаем.

    Кто знает, может получится.

    UPD. Мой скайп в профиле.

    UPD2. Есть и моя ошибка, замените #include "Wire.h" на #include <Wire.h>. В последнем коде, который скидывал.

    UPD3. Продолжим
    Идея очень простая, отображать все отправленные и полученные байты. Чтобы убедится, что запись и чтение одинаковая.

    Для этого код I2C.cpp для Ардуине в прищепке. Такой же код надо сделать для Atmega16, у меня нет библиотеки UART под Atmega16, как и самой Atmega16. Гляньте в сети.

    Кода получите результаты, сохраните их в Excel разбейте по колонкам - http://sirexcel.ru/osvaivaem-excel/kak-razbit-tekst-po-stolbcam-v-excel/ и с помощью функции Если сравните данные.
     

    Вложения:

    • I2C.cpp.txt
      Размер файла:
      1,2 КБ
      Просмотров:
      538
    Последнее редактирование: 14 дек 2015