|
Пару вопросов по Си для MCS51, от начинающего... |
|
|
|
 |
Ответов
|
Jul 8 2007, 19:51
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598

|
Цитата(Lotor @ Jul 8 2007, 18:32)  Доброе время суток. Начал тут изучать C для 51-х и возникли глупые вопросы: 1) Как Вы отсчитываете (формируете) боле-мене точные временные интервалы? Допустим надо сформировать задержку в 1 секунду, стандартной функции у Keil'a нет, надо писать самим. Есть ли стандартные приемы? Или надо написать какую-нить простенькую конструкцию аля for (i=40;i>0;i--), посмотреть какой ассемблеровский код ей соответствует после компиляции и затем прикинуть? Или в программном симуляторе засечь? Но это же так тоскливо... Можно ли решить задачу не методом такого подбора? 2) Как массив помещается в память програм? Keil пихает в драгоценное ОЗУ даже при объявлении со спецификатором const. Буду благодарен за ответы) const и не должен помещать в ОЗУ. Вам нужен code. Пример: unsigned char code password[] = "65535";
Сообщение отредактировал alcosar - Jul 8 2007, 19:51
|
|
|
|
|
Jul 9 2007, 16:18
|
Местный
  
Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866

|
Цитата(alcosar @ Jul 8 2007, 23:51)  const и не должен помещать в ОЗУ. Вам нужен code. Пример: unsigned char code password[] = "65535"; Спасибо, именно то, что надо. Цитата(SALOME @ Jul 9 2007, 07:46)  Временные интервалы лучше формировать встроенными в МК51 таймерами... Это-то понятно, но есть вагон и маленькая тележка ситуаций, когда таймер занят, например опрос АЦП каждую секунду, а при этом I2C формируется программно и нужны боле-мене точные задержки...
--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
|
|
|
|
|
Sep 7 2007, 10:51
|

Участник

Группа: Свой
Сообщений: 45
Регистрация: 28-10-05
Из: Челябинск
Пользователь №: 10 198

|
Цитата(Lotor @ Jul 9 2007, 19:18)  Это-то понятно, но есть вагон и маленькая тележка ситуаций, когда таймер занят, например опрос АЦП каждую секунду, а при этом I2C формируется программно и нужны боле-мене точные задержки... ну в общем то правильные идеи уже прозвучали. Вы успешно подберете контроллер с количеством таймеров равным количеству необходимых задач (по одной на каждый таймер), если таких задач одна-две. Хорошим тоном в программе средней сложности является организация "службы времени" которая в большинстве случаев базируется на одном из таймеров прерыванию на переполнение. В обработке прерывания анализируется количество переполнений (необходимые Вам периоды времени). В зависимости от свободных ресурсов либо расставляются "флажки" действий, которые можно обработать в основном цикле Main, либо эти действия отрабатываются прямо в прерывании.
|
|
|
|
Сообщений в этой теме
Lotor Пару вопросов по Си для MCS51 Jul 8 2007, 15:32  msn Цитата(Lotor @ Jul 9 2007, 19:18) Это-то ... Jul 10 2007, 21:25   zltigo Цитата(msn @ Jul 11 2007, 00:25) пишем...... Jul 10 2007, 22:57   kolobok0 Цитата(Sir Jon @ Sep 7 2007, 14:51) ..Хор... Sep 7 2007, 11:18 SALOME Цитата(Lotor @ Jul 8 2007, 22:32) Доброе ... Jul 9 2007, 03:46 oran-be ЦитатаЭто-то понятно, но есть вагон и маленькая те... Jul 9 2007, 18:17 Lotor Цитата(oran-be @ Jul 9 2007, 22:17) ... Jul 9 2007, 19:21  Sergu Цитата(Lotor @ Jul 9 2007, 22:21) Еще воз... Jul 10 2007, 03:51   Lotor Цитата(Sergu @ Jul 10 2007, 07:51) удобно... Jul 10 2007, 16:53 silc alcosar: const и не должен помещать в ОЗУ. Вам нуж... Aug 10 2007, 14:57 Василий_Безкатегорийный Насчет побитового обращения к портам. Я пытаюсь ра... Sep 25 2007, 08:45 AndreyS Добрый день.
Не стал создавать новую тему.
Вопро... Dec 10 2008, 08:56 barabek Цитата(AndreyS @ Dec 10 2008, 18:56) Суть... Dec 10 2008, 14:18  AndreyS Цитата(barabek @ Dec 10 2008, 17:18) Как ... Dec 10 2008, 16:08   barabek Цитата(AndreyS @ Dec 11 2008, 02:08) Прав... Dec 11 2008, 00:31    tag Цитата(barabek @ Dec 11 2008, 04:31) В эт... Dec 11 2008, 10:05     barabek Цитата(tag @ Dec 11 2008, 20:05) Уверяю в... Dec 11 2008, 10:53    AndreyS Цитата(barabek @ Dec 11 2008, 03:31) Если... Dec 11 2008, 12:00     barabek Цитата(AndreyS @ Dec 11 2008, 22:00) Комп... Dec 11 2008, 14:00      AndreyS Цитата(barabek @ Dec 11 2008, 17:00) Здес... Dec 11 2008, 14:37 AndreyS Люди!!! Помогите. Пока перебросил пере... Dec 10 2008, 10:57 Axel Если функция не написана, как реентерабельная (сло... Dec 10 2008, 17:37 AndreyS Добрый день.
Написал для прерывания специальную ф... Dec 12 2008, 10:38 Сергей Борщ Цитата(AndreyS @ Dec 12 2008, 12:38) И пе... Dec 12 2008, 12:03  c8051 Цитата(Сергей Борщ @ Dec 12 2008, 15:03) ... Dec 12 2008, 16:52   Сергей Борщ Цитата(c8051 @ Dec 12 2008, 18:52) c51.pd... Dec 12 2008, 18:37    AndreyS Цитата(Сергей Борщ @ Dec 12 2008, 21:37) ... Dec 13 2008, 20:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|