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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
SfS
Друг Кота
Сообщения: 19288
Зарегистрирован: Пт янв 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); // Насколько можно понять - вывод этой строки на индикатор.
Аватара пользователя
demxp
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Чт июн 21, 2007 01:12:40
Откуда: г. Орск
Контактная информация:

Сообщение demxp »

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

Сообщение Aheir »

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

Сообщение demxp »

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

Сообщение Tohey »

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

Сообщение moLCHec »

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

Сообщение moLCHec »

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

Сообщение tych »

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

Сообщение Tohey »

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

Сообщение tych »

Не рекомендуют такт из вне подавать.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 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 совсем.
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

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

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

Сообщение moLCHec »

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

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

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

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

Сообщение Tohey »

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

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

да
Fighter
Встал на лапы
Сообщения: 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);
//тут выполняем различные действия
} }
Аватара пользователя
Tohey
Грызет канифоль
Сообщения: 257
Зарегистрирован: Сб сен 09, 2006 19:00:18
Откуда: СССР

Сообщение Tohey »

Для спидометра писал такое, но на асме...
Fighter
Встал на лапы
Сообщения: 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
Ответить

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