таких глупостей как в вышеприведенном фрагменте севет белый не видовал!
Tic EQU -4 ; 4 мкс !!!
это при том, что для 51-й одна команда (однобайтовая) за 1мкс выполняется! (стандартный режим кварц12МГц)
при каком х... там -4 вместо 4!!!
а про режимы таймеров хоть какое-то понятие имеется? и про то. что там досчет до максимума ставить надо...
далее - тактовая сетка делается НА ОДНОМ таймере, а уж "распределитель" с дополнительным счетчиком на регистре работает для более тихоходного сигнала.
синусами не занимался, а вот 8 программных ШИМов с заранее заданной задачей для каждого из каналов можеш тут глянуть: http://radiokot.ru/forum/download/file.php?id=139688
Его там один человек, тоже студент, как то спрашивал, потом я почти то же самое спросил, но он так и не ответил, как там ему треба поквантовать синус согласно заданию.
Программу ему писать заново - это однозначно. Данный вариант я даже критиковать не стал - это всё просто ни о чём.
Даже примерного алгоритма для получения нужного поведения системы человек пока не понимает, увы.
Он справедливо отметился в "Сделайте за меня задание"- это единственная для него возможность, кажется.
И, так или иначе, ему придётся немного выучить "матчасть" чтобы не "поплыть" на вопросах при сдаче.
Я читал его темы - там он не привёл даже определения АМ , хоть его и спрашивали.
В 51-ом мк есть удобная возможность для этого - команда MUL A B - выборка значения уровня сигнала первой частоты умножается на выборку значения уровня сигнала второй частоты и получается значение уровня результата - т.е. промодулированного сигнала.
Я предполагаю, что он так и не понял столь "сложное нечто" и потому решил ставить два ЦАП на порты и получать два синуса раздельно, потом модулировать. Это однозначно НЕзачёт - такое решение не обучает изпользовать мк ибо ежели вместо портов поставить счётчики с ПЗУ-шками значений sin, то и мк не надобен. Стало быть учебное задание будет считаться невыполненым.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Раз уж решили обсудить данный вопрос, присоединюсь и сделаю некоторые предположения. BOB51, согласен с Вами, только добавлю, что минус перед 4 там похоже поставлен по мотивам,
например, книги Микушина А.В. (описание ASM-51): Спойлерmov TH0, HIGH(-(F_ZQ/12)*10 ;Выражения для определения константы
setb TR0 ; Включить таймер и тд... ну, или списал где-то petrenko, думаю он не решал ставить два ЦАПа, скорее всего, это задание такое поэтому команды умножения
и определение АМ так "далеки" Но, если такое задание (2 ЦАП), то и не нужны похоже эти команды и АМ.
Скорее всего ему надо просто выводить байты на порты и получать синус свой, показал бы он лучше свою
методичку и вариант задания оттуда, чем хамить ARV
а какой самый производительный МК возможно установить в плату вместо С8051F320 без доработки платы или c мин. доработками?
F350 или F410 c заменой напряжения питания подойдут или нет?
Здравствуйте. Небольшой вопрос вопрос по силабовскому 8051F320. Реализую программный delay. В теории все очень даже легко и просто. Частота osc. стоит 12МГц. Беру 16bit timer0, выбираю режим тактирования SYSCLK/48, естественно разрешаю прерывания от него. Путем нехитрых расчетов вычисляю, что для создания задержки в 200ms мне необходимо загружать в него константу 3CAF (FFFF-3CAF=C350=50 000 инкрементов до переполнения таймера; при частоте в 250000Гц это займет как раз 200ms).
Для тестирования написал функцию, которая пускает таймер, затем в цикле нужное количество раз отправляет МК в IDDLE. По переполнению таймер прерыванием будит МК и перезаряжается, затем контроллер либо снова отправляется IDDLE, либо продолжает работу. Зависит от количество повторений цикла.
На практике же возникли проблемы: при вызове
МК должен 100 раз повторить вышеописанный цикл, 100*200ms=20 000ms=20s (ну, плюс незначительная погрешность). Но после измерений выяснилось - задержка продолжается всего 10 секунд. В чем может быть проблема? P.S. Если есть необходимость - вечером скину код.
salang, C8051F342/3/6/7/9 серию посмотрите. По крайней мере мой программатор, купленный для 320, обещает шить некоторые модели этой серии (какие точно не помню, но если нужно - могу посмотреть), что как бы намекает. А вообще сверяйте распиновку в даташитах. Напряжение питания скорее всего менять вообще не придется.
я нашел с такой же цоколевкой и в 2 раза производительнее F381 и F342. Но 342 уже тоже снят с производства, а на 381 продажный менегер требует купить пачку или указать название конторы. Пошли они с такими предложениями. Купил в итоге F320
Я бы всё же рекомендовал искать конкретные данные в юзерс гвиде у производителя...
Ибо ядро одно, а в технологиях имеются отличия ( в том числе иногда даже от годов выпуска).
Стандартная серия -
внутренний счет = частота кварца/12
внешний счет = частота кварца/24
у атмелевских ат89
в стандартном режиме (X1 mode)
внутренний счет = частота кварца/12
внешний счет = частота кварца/24
в режиме X2 mode
внутренний счет = частота кварца/6
внешний счет = частота кварца/12
какие данные по филипс(NXP), и/или другим производителям - нужно внимательно вчитываться.
В любом случае - не хуже стандартных, но, возможно, и весьма пошустрее (та же атмелевская LP серия и множество других клонов).
BOB51 писал(а):Я бы всё же рекомендовал искать конкретные данные в юзерс гвиде у производителя...
Ну меня интересует Атмел
BOB51 писал(а):
у атмелевских ат89
в стандартном режиме (X1 mode)
внутренний счет = частота кварца/12
внешний счет = частота кварца/24
А вот тут можно пояснить?
Насколько я понял читая доки Атмела, Hardware Manual (doc4316), то при внешнем счете частота кварца делится на 6. И почему при внешнем счете частота еще в 2 раза падает относительно частоты кварца?
Переферийные клоки
...
"For timer operation (C/Tx# = 0), the timer register counts the divided-down peripheral
clock. The timer register is incremented once every peripheral cycle (6 peripheral clock
periods). The timer clock rate is FPER / 6, i.e. FOSC / 12 in standard mode or FOSC / 6 in
X2 mode.
For counter operation (C/Tx# = 1), the timer register counts the negative transitions on
the Tx external input pin. The external input is sampled every peripheral cycle. When
the sample is high in one cycle and low in the next one, the counter is incremented.
Since it takes 2 cycles (12 peripheral clock periods) to recognize a negative transition,
the maximum count rate is FPER / 12, i.e. FOSC / 24 in standard mode or FOSC / 12 in X2
mode. There are no restrictions on the duty cycle of the external input signal, but to
ensure that a given level is sampled at least once before it changes, it should be held for
at least one full peripheral cycle.
..."
Доброго времени суток. Посоветуте пожалуйста среду программирования для MCS-51, на ассемблере. Причем именно в виде готовой IDE. Попробовал голый ассемблер с сайта атмел - не моё, я уже слишком привык к среде типа АВР Студио. Кейл умеет только до 2 КБ (маловато), ИАР кикстарт умеет 4 кб (уже вроде как хватает), но только на Си, а мне надо асм. Нашёл интересную AT89LP Developer Studio (с сайта Атмел), но она умеет только AT89LP, а мне надо AT89S. Пробовал подкидывать ей заголовочные файлы AT89S (*.h и *.inc) но они в списке все равно не появляються, может закидывал не туда... Ломать Кейл бы очень не хотелось, только если другого выхода нет.
Тогда только вот это: http://www.raisonance.com
где-то в архивах была демо версия до8 килобайт кода
но... весьма специфичная штука - тяжко будет советы/консультации получать...
возможно, где-то в архивах интернета сохранились архивы с системой MCStudio одного украинского гения-одиночки Дмитрия Джулгакова. По-моему, даже у меня где-то были какие-то версии, попробую поискать...
В свое время я помогал автору тестировать эту систему и давал советы по ее улучшению...
Внешне и по возможностям - аналог Atmel AVR Studio 4.xx, изначально ориентирована на ассемблер, но позже получила компилятор Си и генератор кода по графической диаграмме FBD. Содержит собственный компилятор ассемблера без ограничений, правда отладчик-симулятор поддерживает небольшое количество МК (не успел автор реализовать), но принципиально это не является ограничением...
Русскоязычный интерфейс и хелп (кое-что в нем писал я).
Вполне достойная система, жалко, быстро исчезла... поищите в архивах интернета, попробуйте... даже тут на форуме есть упоминания, воспользуйтесь поиском...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Всем спасибо. ARV, про MCStudio я тут еще раньше 1 тему нашел, и даже гуглил, но нашел только http://multicore.ru/index.php?id=58 , а ведь это не оно. Скиньте пожалуйста на какой-то файлообменной, если не трудно будет. Желательно последнюю версию из того что найдёте.
BOB51, спасибо за наводку, надо будет попробовать.
Кейл буду ломать в крайнем случае, хотя я так понимаю из всех IDE он самый популярный?
MCStudio у меня в архивах имеется... Но во-первых синтаксис интегрированного ассемблера отличается от кейла/с51асм, во вторых она ближе к средам графической разработки...
В принципе, можно архивы потрясти, но пересылка через e-mail в виде "резанного архива"...
синтаксис у MCStudio совпадает с оригинальным интеловским. имхо, ориентироваться надо на то, что разработчик сделал, а кейл и другие уже отступают от стандарта
аналогично и с AVR: не очень удобный ассемблер от Атмел все-таки считается стандартным, а вот более удобный GNU AVR-AS многим не нравится...
Это последняя, на сколько я понимаю, версия студии, которая вообще когда-либо была доступна для скачивания кем-либо. К сожалению, я уже не помню, что там к чму, но там есть все: и FBD, и GNU Си (SDCC), и ассемблер.
P.S. мой антивирус почему-то ругается на библиотеку установщика второго файла - что-то ему не нравится, пишет malware какое-то там... раньше не было, если что - я не виноват, используйте на свой страх и риск.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...