Страница 1 из 2
Бегущий огонек на С
Добавлено: Сб авг 23, 2008 10:09:43
Frensis
Люди!!! Я токо изучаю язык С. Дайте мне, пожалуйста, программку на языке С для бегущего огонька, аналогичный тому, который приводится в обучалке(вариант, когда сдвиг осуществляется по прерыванию от счетчика), чтобы на ее основе я смог разобраться с работой устройства. Т.к. в обучалке все на асме.
Re: Бегущий огонек на С
Добавлено: Сб авг 23, 2008 10:28:37
tych
Frensis писал(а):Люди!!! Я токо изучаю язык С. Дайте мне, пожалуйста, программку на языке С для бегущего огонька,
в обучалке все на асме.
на Си с прерыванием от таймера есть в
Микроконтроллеры AVR и PIC начинающим - теория, примеры, программы.
Добавлено: Сб авг 23, 2008 10:38:14
Pippeytz
Вот, может вас ето больше заинтересует? Довольно простая схема, истодники и прошивка там же
http://cxem.net/mc/mc25.php
Добавлено: Сб авг 23, 2008 10:58:46
tych
ATtiny2313 теперь и в
PROTEUS 7.3 поддерживается. Чтоб проверить прошивку достаточно поместить на схему МК? подключить RESET к +5 и указать фал прошивки - и работа ее будет видна.
Я ПОЗЫРИЛ ! РАБОТАЕТ схемка.
Pippeytz писал(а):Вот, может вас ето больше заинтересует ?
человек
про Си спрашивал !
Re: Бегущий огонек на С
Добавлено: Сб авг 23, 2008 11:13:08
Frensis
Re: Бегущий огонек на С
Добавлено: Сб авг 23, 2008 11:32:14
tych
Frensis писал(а):
тут что ли ?
Нет ! по ссылке смотри "13 примеров - задачи-упражнения для освоения программирования AVR."
Re: Бегущий огонек на С
Добавлено: Сб авг 23, 2008 11:38:20
Frensis
tych писал(а):
Нет ! по ссылке смотри "13 примеров - задачи-упражнения для освоения программирования AVR."
2-ая или 6-ая задача?
Re: Бегущий огонек на С
Добавлено: Сб авг 23, 2008 11:53:21
tych
Frensis писал(а):2-ая или 6-ая задача?
Пожалуй 1,2,3 и 6 и стр. 3 о прерываниях вообще.
Добавлено: Сб авг 23, 2008 16:21:09
Mozart
такие вещи надо самому писать
код во вложении.... думаю разберётесь...
Добавлено: Сб авг 23, 2008 18:13:50
Frensis
Mozart писал(а):такие вещи надо самому писать
код во вложении.... думаю разберётесь...
Спасибо, Mozart! Но, как я понял, мигание там осуществляется через задержку, а мне надо через прерывание от таймера-счётчика, как в обучалке...
Добавлено: Сб авг 23, 2008 18:23:38
Mozart
ещё проще.... чуть позже что-нить накрапаю... ну суть в следующем что настраиваешь таймер пишешь функция которая обрабатывает таймер а там пишешь эту херь...
Добавлено: Сб авг 23, 2008 18:37:22
Mozart
вот в общем... под WinAVR...
Добавлено: Сб авг 23, 2008 18:41:22
tych
Mozart писал(а):суть в следующем что настраиваешь таймер пишешь функция которая обрабатывает таймер а там пишешь эту херь...
Вот все разъяснил.
Добавлено: Сб авг 23, 2008 19:30:18
Frensis
Mozart писал(а):вот в общем... под WinAVR...
Большое тебе кошачье пасиб

. Буду разбираться...
Добавлено: Сб авг 23, 2008 19:34:19
Mozart
сори.... я там напортачил...
Код: Выделить всё
#include <avr>
#include <avr>
#include <avr>
SIGNAL (SIG_OVERFLOW0)
{
static unsigned char count = 0;
static unsigned char flag = 1;
if (flag)
{
if (count == 7)
{
flag = 0;
}
else
{
PORTB = 1 << count;
++count;
}
}
if (!flag)
{
if (count == 0)
{
flag = 1;
}
else
{
PORTB = 1 << count;
--count;
}
}
}
void InitTimer0(void)
{
TCCR0 |= (5 << CS00) /*e.g. */; \
TIMSK |= (1 << TOIE0); /*interrupt overflow*/ \
}
void InitPorts(void)
{
DDRB = 0xFF;
}
int main()
{
InitTimer0();
InitPorts();
while(1);
return 0;
}
должно быть так...
Добавлено: Сб авг 23, 2008 19:45:50
tych
ИМХО лучше в обработчике прерываний брать числа из таблицы световых эффектов и выводит их в порт к которому светодиоды подключены.
Добавлено: Сб авг 23, 2008 19:47:31
Mozart
ИМХО лучше в обработчике прерываний брать числа из таблицы световых эффектов и выводит их в порт к которому светодиоды подключены.
это ваше ИМХО на чём основано?...
Добавлено: Сб авг 23, 2008 19:52:28
tych
Mozart писал(а):ваше ИМХО на чём основано ? ...
Ну на чем основывается ИМХО исходя из его расшифровки ?
Добавлено: Сб авг 23, 2008 19:54:22
Frensis
tych писал(а):ИМХО лучше в обработчике прерываний брать числа из таблицы световых эффектов и выводит их в порт к которому светодиоды подключены.
Вы имеете ввиду, использовать массив данных?
Добавлено: Сб авг 23, 2008 19:54:52
Mozart
это не ответ... почему вы считаете что лучше брать числа из таблицы?