О сайте Группа в контакте RSS Годограф Volksturm Импульсные металлоискатели IB металлоискатели Пинпоинтеры Другие схемы Заказать Конструкции металлоискателей Полезные ссылки

Схемы металлоискателей MD4U

Сборка, настройка, обсуждение, теория и практика построения металлоискателей.
Текущее время: Чт: 28 мар 2024 18:59

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему
 [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Проблемы при програмировании С++
СообщениеДобавлено: Сб: 25 окт 2008 18:06 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 23 фев 2007 19:11
Сообщения: 620
Откуда: Украина, Сумы, Киев
вот пишу код, который измерит длину сигнала на 0 й ноге порта С.
Не получается: при срабатывании прирываний переменная col почему-то не увеличивает свое значение на 1. :cry: . Кто подскажет в чем проблема?
Код:
#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); //выводим на терминал количество прерываний
}
}
}

_________________
Tracker PI2/ ClonePI-W/ Chance/Tesoro Eldorado/КРОТ М


Вернуться к началу
 Профиль  
 


Вы можете отключить эти сообщения.
 Заголовок сообщения:
СообщениеДобавлено: Сб: 25 окт 2008 19:12 
Не в сети
Аватара пользователя

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
Идеологически написанное не правильно - Timer1 и Timer2 могут работать в режимах счёта и захвата, совершенно незачем "уродоваться" с Timer0 и перезаписывать его в прерывании. Но вникать в идею мне лень...

А переменная col не инкрементируется в прерывании по той простой причине, что прерывания не происходит - кроме глобального разрешения прерываний надо разрешить прерывание по переполнению таймера 0 - бит TOIE0 регистра TIMSK.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб: 25 окт 2008 19:16 
Не в сети

Зарегистрирован: Сб: 16 фев 2008 0:40
Сообщения: 24
А PINC.0 как вход назначил?
TCNT0=0xFF; // Таймер стартует с 255 ---- попробуй с 254


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб: 25 окт 2008 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 23 фев 2007 19:11
Сообщения: 620
Откуда: Украина, Сумы, Киев
да, поставил порты с входом и TIMSK=0x01; и все заработало, спасибо :)

_________________
Tracker PI2/ ClonePI-W/ Chance/Tesoro Eldorado/КРОТ М


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб: 25 окт 2008 21:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
P.S. Кстати, это не C++, а C.
P.P.S. А порты по-умолчанию и так на вход :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 28 окт 2008 18:13 
Не в сети
Аватара пользователя

Зарегистрирован: Пт: 23 фев 2007 19:11
Сообщения: 620
Откуда: Украина, Сумы, Киев
особо то разници невижу С/С++, главное что бы работало :D

_________________
Tracker PI2/ ClonePI-W/ Chance/Tesoro Eldorado/КРОТ М


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт: 28 окт 2008 19:31 
Не в сети
Аватара пользователя

Зарегистрирован: Вс: 06 ноя 2005 11:17
Сообщения: 4527
Откуда: С.-Петербург
OSTIN писал(а):
особо то разници невижу С/С++, ...

А она есть...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


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

Найти:
Перейти: