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

_VoRoN_

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

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

  • Посещение

Репутация

0 Обычный

Информация о _VoRoN_

  • Звание
    Участник
    Участник
  • День рождения 22.10.1985

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Вторая ссылочка битая, а вот первая - что надо!!! Спасибо громное! :a14:
  2. Заинтересовала статья "К. Иванов. Синтезатор частоты для КВ радиостанции" которая публиковалась в журналах за сентябрь и октябрь (в 2-х частях) за 2005 год. Проблема в том, что как раз в тот период я журнала не выписывал, а в интернете статьи приводятся не полностью. Если у кого есть данные номера, буду очень благодарен за сканер этой статейки.
  3. Спасибо огромное, выручил! :a14:
  4. Проблема с P1.0 и P1.1 в AT89C4051

    Отказываются работать как разряды порта, постоянно находятся в "0". Остальные разряды порта работают нормально. Предполагаю, что это из-за того что на этих разрядах "висят" еще и AIN0 и AIN1, а вот как отключить компаратор от этих выводов, найти в документации не сумел :(. Кто знает в чем причина, подскажите пожалуйста.
  5. Проблема с записью/чтением байта решена. Кому интересно, пишите на мыло, вышлю исходники.
  6. Ситуация следующая: Есть МК AT89C4051 с внешней EEPROM (24C02), которая общается по протоколу I2C. Никак не получается добится хоть каких-нибудь результатов, то ли не записывает, то ли не считывает. Если кому-нибудь приходилось сталкиваться с реализацией этого протокола на Си, буду очень признателен за примерчик, а то их на Ассемблере валом, на Си же найти не удалось.
  7. Всем спасибо за ответы :a14: Будем пробывать!
  8. Реализовать АЦП другого типа не представляется возможным, т.к. работы возобновлялись со стадии на которой уже были изготовлены п/п под АЦП данного типа. А вот смущает многое:) точнее сказать я вообще слабо догоняю принцип его работы.
  9. Необходимо измерять постоянное напряжение, для этого решил использовать сигма-дельта АЦП, реализация которого описана в литературе по MSP. Схема хоть и простая, да и пример реализации дается, однако возникает куча непоняток. Если кто сталкивался с реализацие АЦП данного типа, просьба поясните в кратце основные моменты. (статья-источник - http://www.gaw.ru/html.cgi/txt/app/micros/...30/slaa104.htm)
  10. С powf() на 148-ом собралось!!! Но вот на 1101-ом не хочет, видимо действительно памяти не хватает:( вычислить необходимо довольно сложное выражение: x = E*e^(-t/tau), именно для возведения e в степень (-t/tau) и требуется данная ф-ия. Как обойти ее и сохранить требуемую точность (0,5%)...просто ума не приложу.
  11. в том то идело, что не забыл все как положенно #include <math.h> может ему еще чего надо? или найти чего не может?...
  12. Попробывал поменять тип контроллера, взял 148-ой, у этого памяти должно хватать по любому. Теперь на все функции ругается одинаково:), но ругается неизменно: main.o: In function `preobraz': /cygdrive/i/я77777710я77777761я77777765я77777756я77777744я77777755я77777750я77777752я7777775 0/MSP430/PowerMeter/main.c:48: undefined reference to `pow' make: *** [PowerMeter.elf] Error 1 это в ответ на: void preobraz (void) { Uc=pow(count,5); } с 1101-ым писало по иному (см. первый пост).
  13. ... не хватает места для функции... дело в том, что все стандартные функции здесь реализованы "в лоб" - взяты из стандартной сановской библиотеки и просто скомпилированы. Они занимают очень много места и в 2к не влезают. Необходимо так же помнить, что сами по себе функции работы с плавающей точкой тоже занимают очень много места. Лучше их вообще не использовать на таких маленьких контроллерах. Если необходимость все-же есть, то можно использовать libfp (-lfp). В этом случае стандартная 754 библиотека подменяется такой же, но несколько оптимизированной и без проверки исключений и переполнений. Что же касается кода, то умножить 5 раз число будет быстрее, чем возводить его в степень. На самом деле выражение более сложно:) но, от его сложности кол-во ошибок не зависит. Я попробывал, и вот что получается: компилятор ругается на все мат. ф-ии Си, например: void preobraz (void) { Uc=sqrt(4); } сообщение компилятора: msp430-gcc -mmcu=msp430x1101 -o PowerMeter.elf main.o -lm -L -lfp./lib main.o: In function `preobraz': /cygdrive/i/я77777710я77777761я77777765я77777756я77777744я77777755я77777750я77777752я7777775 0/MSP430/PowerMeter/main.c:32: undefined reference to `sqrt' make: *** [PowerMeter.elf] Error 1 Может я что-нибудь, где-нибудь забыл прописать?
  14. Проблема состоит в следующем: возникла необходимость использования функции возведения в степень pow из стандартной библиотеки math.h. Однако при сборке проекта (проект называется PowerMeter), компилятор ругается: msp430-gcc -mmcu=msp430x1101 -o PowerMeter.elf main.o -lm -L./lib /cygdrive/i/mspgcc/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/bin/msp430-ld: region text is full (PowerMeter.elf section .text) /cygdrive/i/mspgcc/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/bin/msp430-ld: section .vectors [0000ffe0 -> 0000ffff] overlaps section .text [0000fc00 -> 00010471] /cygdrive/i/mspgcc/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/bin/msp430-ld: PowerMeter.elf: section .vectors lma 0xffe0 overlaps previous sections main.o: In function `preobraz': /cygdrive/i/я77777710я77777761я77777765я77777756я77777744я77777755я77777750я77777752я7777775 0/MSP430/PowerMeter/main.c:30: undefined reference to `pow' make: *** [PowerMeter.elf] Error 1 функция используется в след. виде: void preobraz (void) { Uc=pow(count,5); } Если у кого-нибудь было подобное, подскажите плиз.
  15. Заработала побайтная запись. Действительно необходимо ожидать начала и окончания записи. А так, отличия от at 89S8252 только в регистрах настроек eeprom и сторожевого таймера.
×
×
  • Создать...