Нужно переделать прошивку для ATtiny13a

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
ATtiny13
Встал на лапы
Сообщения: 110
Зарегистрирован: Пт окт 21, 2011 15:05:18

Нужно переделать прошивку для ATtiny13a

Сообщение ATtiny13 »

Как эту программу переделать на ATtiny13a и подскажите как сделать чтобы эффекты изменялись после нажатия на кнопку?
Спасибо)
#define F_CPU 10000000UL //тактова частота нашего мк 8Гц

//погружаем библиотеку
#include <avr/io.h> //
#include <avr/iom16.h> //
#include <util/delay.h> //

void main(void)//
{

DDRD = 0xFF; //
DDRC = 0x00; //

while(1==1) //
{
if(PINC == 0b0000000)
{
PORTD = 0b00000001;//
_delay_ms(50);//

PORTD = 0b00000001;//
_delay_ms(50);//

PORTD = 0b00000100;//
_delay_ms(200);//


PORTD = 0b00000010;//
_delay_ms(50);//

PORTD = 0b00000010;//
_delay_ms(50);//
}//
}//
}//

эффект милицейских стробоскопов :)
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Нужно переделать прошивку для ATtiny13a

Сообщение TripleKill »

Можно вот такую структуру программы предложить:

L1: while (true)
{
<мигаем 1ым способом >
if (кнопка)
{ while (кнопка) {}; //это для исключения проскакивания
break;
}
};

while (true)
{
<мигаем 2ым способом>
if (кнопка)
{ while (кнопка) {};
break;
}
};

...

while (true)
{
<мигаем>
if (кнопка)
{ while (кнопка) {};
goto L1;
}
}
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Нужно переделать прошивку для ATtiny13a

Сообщение TripleKill »

А ещё вместо goto можно использовать внешний вечный while)
ATtiny13
Встал на лапы
Сообщения: 110
Зарегистрирован: Пт окт 21, 2011 15:05:18

Re: Нужно переделать прошивку для ATtiny13a

Сообщение ATtiny13 »

Извините я начинающий и не все понял вместо (кнопка) нужно поставить адрес PORTD = 0b00000001;
могли бы вы показать пример чтобы я потом как в этой прошивке мог доставлять эффекты и всякую такое ,а основная часть оставалась без изменений
Здесь для мега 16
#define F_CPU 10000000UL //тактова частота нашего мк 8Гц

//погружаем библиотеку
#include <avr/io.h> //
#include <avr/iom16.h> //
#include <util/delay.h> //

void main(void)//
{
здесь прошивка всякие эффекти
}
}
}
Буду очень благодарен))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Re: Нужно переделать прошивку для ATtiny13a

Сообщение sachok »

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

#define F_CPU 8000000UL //тактова частота нашего мк 8[b]МГц[/b]
#define setBit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define clearBit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))

#include <avr/io.h>
#include <avr/iotn13.h>
#include <util/delay.h>
int main(void)
{
	DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2); // leds
	PORTB |= (1 << PB4); // button

	while (1)
	{
		if (bit_is_clear(PINB,4)) { // button pressed
clearBit(PORTB,1);
			setBit(PORTB,0);
			_delay_ms(100);
			
			clearBit(PORTB,0);
			setBit(PORTB, 2);
			_delay_ms(200);

			clearBit(PORTB,2);
			setBit(PORTB,1);
			_delay_ms(100);
		}
	}
	return 0;
}
Но тут одно но, кварц к тини13 прицепить нельзя, поэтому лучше использовать 4,8МГц внутренний осциллятор.

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

 F_CPU 4800000UL
Я не Сашок!!!
Реклама
ATtiny13
Встал на лапы
Сообщения: 110
Зарегистрирован: Пт окт 21, 2011 15:05:18

Re: Нужно переделать прошивку для ATtiny13a

Сообщение ATtiny13 »

Очень благодарю)) :))
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»