Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2015, 12:35   #1
pochti_poluchilos
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
Злость в программе выстроить правильно прерывание для контроллера ATmega8

ОМК ATmega8 (прерывание)

ТовариШЧи, второй день бьюсь об заклад . Не могу в программе выстроить правильно прерывание для контроллера ATmega8 . Кто подскажет ?
Код:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL

volatile int flagInt1;
char PinB1=0;
int main ()
{
	void Inital (void);
	Inital ();
	for (;;)
	{
		if (flagInt1 !=0)_delay_ms(300);
		if (PinB1=1)
		{
			PORTC|=0b00000001;
			_delay_ms(300);
			PORTC &=0b11111110;
			_delay_ms(300);
			
		PORTC |= 0b00000100;
			_delay_ms(300);
			PORTC &= 0b11111011;
			_delay_ms(300);
			
			PORTC |= 0b00010000;
			_delay_ms(300);
			PORTC &= 0b11101111;
			_delay_ms(300);
		}
		else
		{
			PORTB &= 0b00000000;
		}
	}
	return 0;
}

void Inital (void)
{
	DDRB=0b00000000;
	PORTB &=0b11111111;
	DDRC=0b00010101; 
	
    SREG |=0x80;
	GICR |=0b10000000;
	MCUCR |=0b00001100;
	
	
}
ISR (INT1_vect)
{
	if  (flagInt1=1) {
		void Inital (void);
	}
	if (flagInt1=0) {
		PORTC &=0b00000000;
	}
}
___
Не забывайте, тема должна иметь название, отвечающее правилам форума!
Модератор

Последний раз редактировалось pochti_poluchilos; 01.04.2015 в 13:24.
pochti_poluchilos вне форума Ответить с цитированием
Старый 01.04.2015, 19:37   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Не знаю ни С ни АТМегу, но навскидку
1. не вижу инициализации flagInt1
2. в ISR проверка должна быть через '==' (это же С-парта), то же и в main.
3. Используемые переменные PinB1 и flagInt1 хоть и используются, но нигде не модифицируются и оптимизатором gcc могут быть даже удалены из кода.
FPaul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для контроллера SDK Шпилька Фриланс 5 19.11.2014 13:55
Задержка в программе. прерывание. EvilHero Помощь студентам 0 11.04.2014 14:13
ШИМ для мк atmega8 pimple2006 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.02.2012 04:11
програматор для ATmega8. все это длля чайника! pufystyj Микроконтроллеры, робототехника, схемотехника, 3D принтеры 14 28.05.2011 00:57
API для контроллера AC-link asv Win Api 2 08.11.2008 09:29