Схемы металлоискателей MD4U http://md4u.ru/ |
|
Проблемы при програмировании С++ http://md4u.ru/viewtopic.php?f=24&t=2375 |
Страница 1 из 1 |
Автор: | OSTIN [ Сб: 25 окт 2008 18:06 ] |
Заголовок сообщения: | Проблемы при програмировании С++ |
вот пишу код, который измерит длину сигнала на 0 й ноге порта С. Не получается: при срабатывании прирываний переменная col почему-то не увеличивает свое значение на 1. . Кто подскажет в чем проблема? Код: #include <mega8.h>
#include <stdio.h> int col=0; interrupt [TIM0_OVF] void timer0_ovf_isr(void) //функция прерывания { TCNT0=0xFF; col++; } void main(void) { UCSRA=0x00; // для работы усарта UCSRB=0x08; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; TCNT0=0xFF; // Таймер стартует с 255 #asm("sei") while (1) { if (PINC.0) { TCCR0=0x03; // запускаем таймер с частотой 125,000 kHz while (PINC.0) { // ничего не делаем пока на PINC.0 еденица } TCCR0=0x00; // останавливаем таймер printf("Kolichestvo = %d\r\n", col); //выводим на терминал количество прерываний } } } |
Автор: | Andy_F [ Сб: 25 окт 2008 19:12 ] |
Заголовок сообщения: | |
Идеологически написанное не правильно - Timer1 и Timer2 могут работать в режимах счёта и захвата, совершенно незачем "уродоваться" с Timer0 и перезаписывать его в прерывании. Но вникать в идею мне лень... А переменная col не инкрементируется в прерывании по той простой причине, что прерывания не происходит - кроме глобального разрешения прерываний надо разрешить прерывание по переполнению таймера 0 - бит TOIE0 регистра TIMSK. |
Автор: | zxpirate [ Сб: 25 окт 2008 19:16 ] |
Заголовок сообщения: | |
А PINC.0 как вход назначил? TCNT0=0xFF; // Таймер стартует с 255 ---- попробуй с 254 |
Автор: | OSTIN [ Сб: 25 окт 2008 21:17 ] |
Заголовок сообщения: | |
да, поставил порты с входом и TIMSK=0x01; и все заработало, спасибо |
Автор: | Andy_F [ Сб: 25 окт 2008 21:21 ] |
Заголовок сообщения: | |
P.S. Кстати, это не C++, а C. P.P.S. А порты по-умолчанию и так на вход |
Автор: | OSTIN [ Вт: 28 окт 2008 18:13 ] |
Заголовок сообщения: | |
особо то разници невижу С/С++, главное что бы работало |
Автор: | Andy_F [ Вт: 28 окт 2008 19:31 ] |
Заголовок сообщения: | |
OSTIN писал(а): особо то разници невижу С/С++, ...
А она есть... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |