реклама на сайте
подробности

 
 
> Запуск таймера 16бит по внешнему прерыванию, Атмега+CodeVision
Vny4ek
сообщение Dec 4 2008, 06:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Никак не могу разобраться как сделать так:
При перепаде сигнала на входе от 0 до 5 срабатывает прерывание и запускает отсчет 16 битный счетчик
я правильно понял что нужно подовать сигнал на INT0 ножку и выбирать Rising Edge в мастере генерации кода? Если можно киньте плиз шаблон. как начать. по сути хочу вывести на дисплей значение таймера
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vny4ek
сообщение Dec 10 2008, 12:08
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Все учел что сказали, перекомпилил нарисовал в протеусе, но работать отказывается. Может я что то не так еще делаю. На ножку PD2 (INT0) кнопкой от линии питания +5В подаю как бы фронт. Но ничего на дисплей не идет. подскажите плиз. Привожу код:

Код
#include <mega16.h>
#include <stdio.h> // sprintf
#include <delay.h> // delay_ms


#asm
.equ __lcd_port=0x15;PORTC
#endasm
#include <lcd.h>

volatile unsigned int s=1; // !!!Esli s=1 to na LCD vivodit TEXT!!!
// !!!Signal idet na PD2 (INT0)

// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
s=0;
}

void main(void)
{

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: T1 pin Rising Edge
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x07;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Rising Edge
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x03;
MCUCSR=0x00;
GIFR=0x40;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
s=1;

#asm("sei")
while (1)
{
  
if (s==0) {
delay_ms(50);
lcd_clear();
delay_ms(50);
lcd_gotoxy(0,1);
delay_ms(50);
lcd_putsf("Interrupt work!");  
delay_ms(50);
};

};
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vny4ek   Запуск таймера 16бит по внешнему прерыванию   Dec 4 2008, 06:27
- - Aesthete Animus   Цитата(Vny4ek @ Dec 4 2008, 09:27) Никак ...   Dec 4 2008, 12:51
- - Vny4ek   Неа, в том то и дело что не получилось, хочу вывес...   Dec 4 2008, 14:57
|- - vik0   Цитата(Vny4ek @ Dec 4 2008, 16:57) Может ...   Dec 4 2008, 18:48
|- - SysRq   Цитата(Vny4ek @ Dec 4 2008, 17:57) В функ...   Dec 4 2008, 21:18
- - Aesthete Animus   2Vny4ek Всецело согласен с предыдущим оратором. От...   Dec 4 2008, 21:16
- - Vny4ek   ОК понял! я домой приду вечером и выложу свой ...   Dec 5 2008, 06:02
- - Vny4ek   Вот код зацените пожалуйста что не так #include ...   Dec 10 2008, 06:25
- - _Ivan_33   хех... 1) если переменная сначала не объвлена как ...   Dec 10 2008, 06:35
|- - Aesthete Animus   Цитата(_Ivan_33 @ Dec 10 2008, 09:35) 1) ...   Dec 10 2008, 09:20
|- - vik0   ЦитатаТоесть эту строчку нужно поместить в цикл Wh...   Dec 10 2008, 09:40
- - Vny4ek   Тоесть эту строчку нужно поместить в цикл While? ...   Dec 10 2008, 07:05
|- - mdmitry   Цитата(Vny4ek @ Dec 10 2008, 15:08) На но...   Dec 10 2008, 12:59
- - _Ivan_33   а без всяких дополнительных извращений на LCD что ...   Dec 10 2008, 12:59
- - Vny4ek   Если s==0 то выводится я пробовал ей присваивать з...   Dec 10 2008, 14:44
|- - Goodefine   Цитата(Vny4ek @ Dec 10 2008, 17:44) ...А ...   Dec 10 2008, 19:26
- - Vny4ek   Я учел ВСЕ рекомендации. В итоге вижу следующее: Н...   Dec 11 2008, 08:10
- - Goodefine   Схему подключения кнопки к INT0 приведите...   Dec 11 2008, 08:44
- - Vny4ek   Вот. хотя еще раз повторюсь при нажатии кнопки нач...   Dec 11 2008, 13:12
- - Goodefine   Да как так у вас получается? Взял код из вашего же...   Dec 11 2008, 13:41
- - Vny4ek   Попробуйте плиз мой хекс в протеусе использовать (...   Dec 11 2008, 14:12
- - Goodefine   Для какого кварца у вас хекс? У меня для 8 МГц... ...   Dec 11 2008, 15:13
- - Vny4ek   Вот мой проект. Посмотрите пожалуйста что не так В...   Dec 12 2008, 09:18
- - Goodefine   Это не проект, это прошивка. Проект - это все фай...   Dec 12 2008, 11:35
- - Vny4ek   Извините, невнимательность просто, вот файл проект...   Dec 12 2008, 12:52
- - SysRq   Цитата(Vny4ek @ Dec 10 2008, 15:08) Все у...   Dec 12 2008, 14:25
- - Vny4ek   Всем спасибо, заработало! Сразу вопрос собстве...   Dec 18 2008, 11:20
|- - Сергей Борщ   Цитата(Vny4ek @ Dec 18 2008, 13:20) Как м...   Dec 19 2008, 07:33
- - SysRq   Настройте таймер чтобы тикал с нужным дискретом (ч...   Dec 18 2008, 17:43
- - Goodefine   Прерывания на INT0 в меге16 можно настроить по ИЗМ...   Dec 19 2008, 07:02
- - Goodefine   Цитата(Сергей Борщ @ Dec 19 2008, 10:33) ...   Dec 19 2008, 08:59
|- - Сергей Борщ   Цитата(Goodefine @ Dec 19 2008, 10:59) Та...   Dec 19 2008, 10:30
- - Goodefine   Цитата(Сергей Борщ @ Dec 19 2008, 14:30) ...   Dec 19 2008, 12:57
- - Сергей Борщ   Цитата(Goodefine @ Dec 19 2008, 14:57) Уч...   Dec 19 2008, 13:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016