Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 20.02.2010, 02:05  
2517212
Частый гость
 
Регистрация: 08.11.2008
Сообщений: 19
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
2517212 на пути к лучшему
По умолчанию Опрос кнопки на atmega 16

Доброго времени суток. Я студент Есть задача, в которой мне нужна помощь.Значит задача состоит в том, что есть реальная плата, на мега 16, и нужно ее запрограмить так чтоб при включении на семисегментнике горела определенная цифра, а при нажатии на кнопку, цифра каждый раз менялась на определенное значение(все время одинаковое, например изначально горит двойка, а после нажатия кнопки она меняеться на 5-ку, после следующего на 8-ку и т.д.). Но можно чтоб это все срабатывало не до бесконечноссти, а хотябы пару раз менялось значение после нажатия кнопки(т.е алгоритм такой, если нажата кнопка, то говорим какое зажигать число, после этого опять опрашиваем кнопку, и если нажата, то еще раз указываем какое число высвечивать). Т.е не нужно никаких сложных алгоритмов, чтоб оно само считало, какое следующее число выводить. Вот... зажечь первую циферку я могу, а вот опрашивать кнопку, и говорить, какое выводить следующее число, если кнопка была нажата, я не умею, собственно в этом и прошу помочь.
PS. Кнопка подключена к порту PA4, а семисигментник висит на порте С, а катод семисигментника на PA1. Вообще там три семисегментника и 3 кнопки, для управления каждым сегментом, но я думаю что если с одной кнопкой я разберусь, то и все остальное до кучи слеплю.
Заранее спасибо за помощь
Реклама:

Последний раз редактировалось 2517212; 20.02.2010 в 02:09.
2517212 вне форума  
Непрочитано 20.02.2010, 13:12  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16.

Исходник в студию
Classic001 вне форума  
Непрочитано 20.02.2010, 13:32  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16.

while (1)
{
if (!PINA.4)
{
//вывод на экран
delay_ms(50);
}
else
{
delay_ms(50);
};

};
spballiance вне форума  
Непрочитано 20.02.2010, 16:09  
2517212
Частый гость
 
Регистрация: 08.11.2008
Сообщений: 19
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
2517212 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16.

ой, забыл написать, что программа нужна на асемблере! Исходник выложу попозже.
2517212 вне форума  
Непрочитано 20.02.2010, 20:18  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16.

Зайди на сайт ко мне, там подробно изложен алгоритм опроса кнопок. Есть код программы на Си.
__________________
www.samodelkin.kiev.ua - для тех, кто хочет научиться!
alex28411 вне форума  
Непрочитано 21.02.2010, 00:06  
2517212
Частый гость
 
Регистрация: 08.11.2008
Сообщений: 19
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
2517212 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16

я же говорю, мне на асемблере нужно, в си я вообще дуб
2517212 вне форума  
Непрочитано 21.02.2010, 00:13  
spballiance
Вид на жительство
 
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
spballiance на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16

Сообщение от 2517212 Посмотреть сообщение
я же говорю, мне на асемблере нужно, в си я вообще дуб
ну я до недавнего времени тоже придерживался такого мнения...
однако си для авр освоил за неделю
http://futurelink.h1.ru/bookc.htm
spballiance вне форума  
Непрочитано 21.02.2010, 16:18  
Classic001
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 81
Сказал спасибо: 2
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Classic001 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16

Цитата:
я же говорю, мне на асемблере нужно, в си я вообще дуб
Похоже это касается и асма

Вот должно быть примерно так

Код:
.include "m16def.inc"

.equ	MaxCnt	=	8		// Maximum numbers in loop


.def	Step1	=	r16	
.def	Tmp		=	r19
.def	Buttons	=	r20
.def	Changes	=	r21


	.org	0x00
	jmp		Reset

	.org	0x12
	jmp		Timer0_ovf


	.org	0x2a

Reset:		ldi		r16,	high(RAMEND)		// init stack
			out		SPH,	r16
			ldi		r16,	low(RAMEND)
			out		SPL,	r16

			ldi		r16,	0xff
			out		DDRC,	r16					// set PORTC as output

			ldi		r16,	(1 ‹‹ PA4)			// enable pullup resistor on button
			out		PORTA,	r16

			clr		Step1
			clr		Changes

			// init timer
			ldi		Tmp,		5
			out		TCCR0,		Tmp
			ldi		Tmp,		1
			out		TIMSK,		Tmp
			ldi		Tmp,		0x80			// reload timer (çíà÷åíèå íàïèñàë îò áàëäû)
			out		TCNT0,		Tmp
			sei

	main:	sbrc	Changes,	PA4				// skip next command if no changes button
			call	Change1
			rjmp	main


Timer0_ovf:
			in		Tmp,		PINA			// get current value of port A and check for changes with prev state
			eor		Buttons,	Tmp
			mov		Changes,	Buttons
			mov		Buttons,	Tmp

			ldi		Tmp,		0x80			// reload timer
			out		TCNT0,		Tmp

			reti
			
EE_Read:
			sbic	EECR,		EEWE
			rjmp	EE_Read
			out		EEARH,		r0
			out		EEARL,		r1
			sbi		EECR,		EERE
			in		r2,			EEDR
			ret

Change1:	andi	Changes,	~(1 ‹‹ PA4)		// clear "button position changed" flag
			sbrc	Buttons,		  PA4		// check for curr state. exit if released
			ret

			inc		Step1
			cpi		Step1,		MaxCnt
			brne	Change1_loadnext

			clr		Step1

	Change1_loadnext:
			mov		r1,			Step1
			call	EE_Read
			out		PORTC,		r2
			ret
Classic001 вне форума  
Непрочитано 21.02.2010, 19:06  
2517212
Частый гость
 
Регистрация: 08.11.2008
Сообщений: 19
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
2517212 на пути к лучшему
По умолчанию Re: Опрос кнопки на atmega 16

Спасибо всем, задача ршена!
2517212 вне форума  
Непрочитано 31.03.2012, 00:35  
vadik01
Прохожий
 
Регистрация: 31.03.2012
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vadik01 на пути к лучшему
Восклицание Re: Опрос кнопки на atmega 16

подскажите пожалуйста, у меня про прошивки мк выпадает такая ошибка

Код:
Reading FLASH input file.. OK
Entering programming mode.. OK!
Reading FLASH ..      OK!
WARNING: FLASH byte address 0x0000 is 0xFF (should be 0x0F).. FAILED!
Leaving programming mode.. OK!
vadik01 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Энергосберегающий режим Atmega 16L zamsv Микроконтроллеры, АЦП, память и т.д 6 22.02.2010 06:29
ATmega + цифровой акселерометр kamigvik Микроконтроллеры, АЦП, память и т.д 9 16.12.2009 18:40
ATMega вместо ICC7106 OlexKey Микроконтроллеры, АЦП, память и т.д 19 20.11.2009 16:00
Я и моя помеха (Atmega) ua_gruzin Микроконтроллеры, АЦП, память и т.д 64 18.11.2009 15:15
Помогите с обработкой нажатия кнопки pic12f629 alexandr-nimnul Микроконтроллеры, АЦП, память и т.д 5 18.10.2009 13:15


Часовой пояс GMT +4, время: 12:41.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot