Вопросы и замечания по статьям и схемам, представленным на нашем сайте
При поддержке РадиоКОТструктор.ру
Чт авг 31, 2006 19:24:23
Смотрим статью Mamonth'a:
- Код:
while (1)
{
UDR = 'a';
};
Все замечательно, но как передать целое слово? Например INIT?
Потом. Допустим приняли слово. Проанализировали, и надо тоже слово отправить. Как? Скоро быренько слеплю модельку для этого дела, уже МАХ232 купил, т што буду екскрементировать
Вт сен 05, 2006 17:19:46
Есть подробное упражнение 5 по работе в USART -
с примерами для начинающих
forum.roboclub.ru/IPBoard/index.php?showtopic=264
Вт сен 05, 2006 17:34:03
Дмитрий О писал(а):Скоро быренько слеплю модельку для этого дела, уже МАХ232 купил, т што буду екскрементировать
Еще быстрей это делается в VMLAB или PROTEUS - примры идут в составе этих программ. только разбирайся да учись.
Чт сен 07, 2006 06:48:49
Хм... Резонно. Хороший вопрос. Сегодня проштудирую и дам ответ. Хотя сдается мне что надо смотреть в сторону символьных массивов. Но не уверен так что до вечера.
Чт сен 07, 2006 06:50:21
Стоп, вспомнил, есть такая штука printf (там даже есть форматированый вывод). Но! Надо подключать библиотеку, а размер программы увеличивается при этом "ни по детски"
UPD: и на прием scanf
Чт сен 07, 2006 09:31:39
а ссылку на статью можно?
Чт сен 07, 2006 15:39:57
Отлично. Нашел то что надо. Резонный вопрос: где взять нормальный CVAVR? В нете поискал, скачал, в одном архиве ограничения на уарт и на размер файла, в другом пароль нужен. Разумеется, пароля нигде не нашел
Чт сен 07, 2006 18:40:45
Ну дык в нем и есть ограничения! Запрещает Rx Interrupt
Вт сен 12, 2006 17:20:09
Схемку накинул
И вот какая гадость нарисовалась: когда у меня у модема БП сгорел, я попробовал 12В от самого компа на него подать. Больше модем не работал... Потом выяснил, что в модеме накрылась та МАХ232. Я думаю: ли сей девайс через 7805 от компа питать, она не полетит?
Ср сен 13, 2006 03:24:05
Твой модем накрылся из-за наличия отсутствия гальванической развязки.
СОМ-порт не имеет никакой (вообще) гальванической развязки с остальными компонентами компьютера, в частности материнской платой, а потому, могут быть проблемы.
Я сей девайс питал от отдельного блока питания и никаких проблем не было.
Ср сен 13, 2006 15:22:05
Меня интересует, можно ли питать девай с ножки RTS т. е. не произойдет ли замыкание через МАХ232? Микруху жалко
Чт сен 14, 2006 03:30:51
1. Мощности не хватит при постоянной работе, только на коротенькие моменты и то если поставишь кондер.
2. Работать будет в зависимости от фазы луны, вида контроллера материнской платы и длины проводов.
3. Про замыкание - вполне возможно...
4. Кроме того, на КОМ-ПОРТЕ амплитуда +/- 12 В ( а кое-где +/- 20), а после макса 0...+5 и инверсия в добавок.
Пт сен 15, 2006 07:52:12
Дмитрий О писал(а):Меня интересует, можно ли питать девай с ножки RTS т. е. не произойдет ли замыкание через МАХ232? Микруху жалко
На старых мат. платах такое возможно при токе потребления менее 10 ма. и уровнях сигнала +-12в. На современных могут быть уровни 0-+5в ,и номер не пройдёт.
Пт сен 15, 2006 12:33:14
Да какой там 5В... Я по ошибке к TX компа подключил светодиод... Палец обжокъ, светодиод спалил
Пн сен 18, 2006 03:53:20
Сэр Мурр писал(а):На современных могут быть уровни 0-+5в ,и номер не пройдёт.
Какой 0-+5?!?!? Там -12/+12, это стандарт!
Пн сен 18, 2006 07:51:54
Ой, еще вот такой вопрос. Есть код:
- Код:
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
Я в Си не силен, и поэтому осмелюсь спосить, а куда нужно впихнуть код обработки прерывания?
Ср сен 20, 2006 10:18:54
Дмитрий О писал(а):Ой, еще вот такой вопрос. Есть код:
- Код:
rx_buffer_overflow=1;
};
};
Вот здесь....
}
Я в Си не силен, и поэтому осмелюсь спосить, а куда нужно впихнуть код обработки прерывания?
Ес-но подразумеваем что тебе нужна обработка именно этого прерывания
Ср сен 20, 2006 12:35:58
Спасибо!
Ср сен 20, 2006 14:42:09
Ребят. Можно я вмешаюсь как типа Мудрый старец?
Если пишем под WinAVR
- Код:
#include <stdio>
static int uart_putchar(char c, FILE *stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,
_FDEV_SETUP_WRITE);
static int
uart_putchar(char c, FILE *stream)
{
if (c == '\n')
uart_putchar('\r', stream);
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
return 0;
}
int
main(void)
{
init_uart();
stdout = &mystdout;
printf("Hello, world!\n");
return 0;
}
Но опять же не забываем про размер кода. Но иногда очень помогает.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.