Страница 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
Pippeytz писал(а):схема, истодники и прошивка там же
http://cxem.net/mc/mc25.php
ATtiny2313 теперь и в PROTEUS 7.3 поддерживается. Чтоб проверить прошивку достаточно поместить на схему МК? подключить RESET к +5 и указать фал прошивки - и работа ее будет видна.

Я ПОЗЫРИЛ ! РАБОТАЕТ схемка.
Pippeytz писал(а):Вот, может вас ето больше заинтересует ?
человек про Си спрашивал !

Re: Бегущий огонек на С

Добавлено: Сб авг 23, 2008 11:13:08
Frensis

Re: Бегущий огонек на С

Добавлено: Сб авг 23, 2008 11:32:14
tych
Frensis писал(а):
tych писал(а):на Си с прерыванием от таймера есть в Микроконтроллеры AVR и PIC начинающим - теория, примеры, программы.
тут что ли ?
Нет ! по ссылке смотри "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
это не ответ... почему вы считаете что лучше брать числа из таблицы?