Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
SfS
Друг Кота
Сообщения: 19432
Зарегистрирован: Пт янв 12, 2007 11:21:39
Откуда: Томск

Сообщение SfS »

Vertel писал(а):Привет. Помогите разобраться, что означает данная строчка:

sprintf(lcd_buffer,"%d", x);
lcd_clear();
lcd_puts(lcd_buffer);

В принципе не понятно "%d", как, например, вывести на ЖК две переменные в первой и второй строке дисплея?
1. Мануалы по stdlib читать надо. В частности man sprintf:

Функция int sprintf(char *str, const char *format, ...); выводит данные ТОЧНО ТАК ЖЕ КАК И printf(), НО не в файл или порт, а в строку str;

То есть, гдето в программе есть определение массива символов lcd_buffer:

Код: Выделить всё

char lcd_buffer[0x20]; // 0x20 - размер буфера, от фонаря...

sprintf(lcd_buffer,"%d", x); // Печатаем число в строку lcd_buffer
// lcd_buffer - теперь содержит ASCIIZ-строку, то есть обычный набор символов, завершающуюся нулём.
lcd_clear();  // Насколько можно понять - очистка некоего индикатора.
lcd_puts(lcd_buffer); // Насколько можно понять - вывод этой строки на индикатор.
Реклама
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 31
Зарегистрирован: Чт июн 21, 2007 01:12:40
Откуда: г. Орск

Сообщение demxp »

Мне случайно попался в руки МК типа AT89S8252-24PI - был в плате вместе с кварцем на 12.000. Можно ли его как-нибудь приспособить для использования в качестве жертвы при прочитывании Обучалки?
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Почему бы и нет?
Главное внимательно переносить на него код из обучалки и отслеживать все сделанные в нем изменения. Так даже эффективней будет - точно будете знать что и для чего сделали...
Так что - вперед! :)
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 31
Зарегистрирован: Чт июн 21, 2007 01:12:40
Откуда: г. Орск

Сообщение demxp »

Спасибо, Aheir, прочитал твой ответ и со всем пылом юности кинулся писать программу на основе Обучалки. На первой же строке решил проверить а файла 8252def.inc нет в помине! Перерыл кучу сайтов а так нигде и не нашел... :( А без заголовочного файла все становится...
Потом решил и купил ATmegu8L с ней, надеюсь, будет попроще...
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

А юзал кто часовой таймер в меге8 например? Как подключить внутренние кондеры к ногам TOSC1 TOSK2? Кварц я подключил, всё работает, но слышал что нужно ещё концеры подключать... Или я ошибаюсь?
Реклама
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Я юзал на 16-й меге кондёры подключаются установкой соответствующих битов надо смотреть доку. А на 8-й меге TOSC1 TOSK2 совпадают с выводами кварца т.е. сам контроллер получается должен работать от внутреннего генератора иначе 32кГц будет основной частотой процессора.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Реклама
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Уже второй час бьюсь не могу сообразить у Меги 64 порт F не выводит и всё, фьюз JTAGEN установил в 1, АЦП отключил, короче всё что можно сделал нифига. порты A C D E работают остальные пока не проверял. Работу с внешним ОЗУ и т.п. отключил.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Код то какой ?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

moLCHec, да так и есть, использую внутренний rc генератор, а таймер от кварца 32кгЦ. Помоему нашел, нужно установить фуз scopt, завтра попробую. Только не понял, почему не рекомендуется внешний источник тактирования - "Applying an external clock source to TOSC1 is not recommended". Выше ведь пишут что этот таймер оптимизирован для внешнего кварца 32кгц :?
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Не рекомендуют такт из вне подавать.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Tohey фьюз CKOP отвечает не за то, прочитал кондёры подключают если у тебя часовой кварц как основной т.е. когда он подключен к XTAL1 XTAL2. Нашёл как я на 16-й меге делал инициализацию таймера
void timer2_init(void)
{
ASSR = 0x08; //set async mode
TCNT2 = 0xE0; //setup
TCCR2 = 0x07; //start
}
Всё работало как часы :)

А что же мне всё таки с портом то сделать не реагирует :o совсем.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Я также делал, ток не подгонял TCNT(TCNT=0). С какой частотой он у тебя тикал? Я делю на 128 и получаю 1-секундные прерывания, но когда сверяю по windows-часам, то немного расходятся... Наверно надо подгонять TCNT.

з.ы. Может у тебя просто порт згорел?
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Я делал на 2 Гц, т.е. 500 мс. Может и сгорел. Я об этом подумываю. Просто не верится что такое бывает. Остальные порты проверил все работают. PORTA PORTB PORTC PORTD PORTE PORTG все кроме PORTF
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Родился
Сообщения: 12
Зарегистрирован: Пт май 18, 2007 10:34:46

Сообщение механик »

Скажите, как можно написать команды для таймера и счетчика вместе.
Например, завершается минута и тут надо, чтоб таймер и счетчик заново начали работать

Типа таково
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

если я правильно понял вопрос - обнули счетчик.
Родился
Сообщения: 12
Зарегистрирован: Пт май 18, 2007 10:34:46

Сообщение механик »

да
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Сообщение Fighter »

Делаю девайс на at89s8252 контроллере у которого на вход p3.2 (он же INT0) поступают импульсы различной длительности и нужно програмно подсчитать длительность импульсов. Видел на atmege на C процедуру обработки прерывания INT0 которая срабатывает по фронту импульса и по спаду, но вот не могу понять в 51 семействе такое было? и если было, то как это выглядит на ассемблере? (нужно по фронту запустить таймер, а по спаду остановить и считать сколько прошло времени)

вот С-шная процедура которая отрабатывает по фронту и спаду? но для atmega16:
#pragma vector = INT1_vect
__interrupt void MY_INT1 (void)
{
if ((MCUCR & Bit(ISC10)) != 0)
{ TCCR1B = Bit(CS11);
MCUCR &= ~Bit(ISC10);
}
else { TCCR1B = 0;
MCUCR |= Bit(ISC10);
//тут выполняем различные действия
} }
Грызет канифоль
Аватара пользователя
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Для спидометра писал такое, но на асме...
Встал на лапы
Сообщения: 94
Зарегистрирован: Ср авг 01, 2007 13:32:33

Сообщение Fighter »

Вопрос снимается, как говорится, RTFM.
таймер можно запускать высоким уровнем на INT(0,1) и остановит он счет когда импульс кончится.... а это именно то что мне нужно
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Ср июн 20, 2007 18:46:54
Откуда: Красноярск

Сообщение Степаныч »

Добрый день господа!У меня как у новичка в программировании микроконтроллеров возник вопрос: какой программатор лучше собрать и пользоваться особенно для ATTiny 2313 20PU(намутил аж 6 штук :) ) и какими программами при этом лучше пользоваться(для прошивки)!На сайте много информации по этому делу но ни в обучалке ни в статьях точного ответа не нашел!!Помогите кто знает
IN GOD WE TRUST
Контактная информация:
Ответить

Вернуться в «Разные вопросы по МК»