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

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

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

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

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

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

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

 
Опции темы
Непрочитано 10.11.2006, 18:54  
sns13
Частый гость
 
Регистрация: 10.11.2006
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sns13 на пути к лучшему
По умолчанию Нужна помощь новичку. Или я глючу, или Протеус или КодеВизио

Привет,

Начинающий в программировании микроконтроллеров.
Тем не менее, собрал схемку в протеусе, написал маленькую программку в КодеВизионе и теперь наблюдаю, как оно обнуляет глобальную переменную. Не могу найти источник граблей - помогите, где искать?

Протеус 6.9 сп4

Вот объявление переменных
volatile unsigned char nextdigit=0x00;
volatile unsigned char segment=0x02;

Вот функция, в которую они приходят
interrupt [TIM2_OVF] void timer2_overflow(void)
{
//if (segment==0x03) segment=0x00;
// else segment++;

if (segment==0x00) PORTD=0b10000000;
if (segment==0x01) PORTD=0b01000000;
if (segment==0x02) PORTD=0b00100000;
if (segment==0x03) {
PORTD=0b00010000;
segment=0x00;};

segment++;
nextdigit++;
//PORTD=segment;
}

Вся программа то и состоит из этой функции и сетупа портов/таймеров - собственно сетуп второго таймера на асинхронное действие по внешнему часовому кварцу.
Вочдог выключен. Смена переменной происходит в аккурат( за два такта по дебаггеру) до начала обработки интеррапта.

Заранее спасибо!
Реклама:
sns13 вне форума  
Непрочитано 10.11.2006, 19:46  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Делаешь выод на 7сегметный индикатор?
Наверное часы, индикаторов 4....
В протеусе в watch window задай бряк по условию
равенства твоей переменной нулю.
А лучше бы выложил здесь проект ,нет времени собирать.
dosikus вне форума  
Непрочитано 10.11.2006, 22:11  
sns13
Частый гость
 
Регистрация: 10.11.2006
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sns13 на пути к лучшему
По умолчанию Эта...

Привет,

Делаю. На 7-ми сегментный. 4 штуки. Хочу 176ид2 поставить и потом понаклеить термометра и управления нагрузкой, но сути глюка это не меняет.

Воч я ставил на смену переменных. Аккурат за два такта до входа в прерывание в нуль сбрасывает. По исходнику в С не видать. По асму тоже не понял, где это его скрутило.

Вот файло прикрепил. Там все.
Написано ужасно и совсем чуть-чуть. Пока только наработка путей решения.

Прикрепленный файл: 7076956.rar
sns13 вне форума  
Непрочитано 11.11.2006, 00:14  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Ни чего страшного, просто лень самому собирать..
Сейчас взгляну...
dosikus вне форума  
Непрочитано 11.11.2006, 00:23  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Пока не ответ на вопрос а совет,
Не используй аналоговых элементов , когда программу отлаживаешь, замени транзисторы или инверторами или на прямую.
Разгрузишь процессор.
dosikus вне форума  
Непрочитано 11.11.2006, 00:30  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

nextdigit эту обнуляет?

И иницилизируешь ты ее 0 ?
А приращаешь в прерывании...
dosikus вне форума  
Непрочитано 11.11.2006, 00:51  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Так ...насколько я понял ты хотел динаммическую идикацию
изобразить....
У тебя нет перебора разрядов индикатора
на выходах S0-S3 торчат 0 постоянно
Первый раз на прерывание от timer2 влетаем через
2 секунлы , второй раз через секунду....
Это много для динаммической идикации.
dosikus вне форума  
Непрочитано 11.11.2006, 00:56  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Наврал прерывание раз в секунду ,
но это все равно много.....
dosikus вне форума  
Непрочитано 11.11.2006, 01:03  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,019
Сказал спасибо: 936
Сказали Спасибо 2,274 раз(а) в 1,567 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Чего то я не понял общие выводы ты повесил на PORTD0-D3 а перебираешь старшие разряды PORTD4-7
И причем активный у тебя должен быть 0 , а ты перебираешь 1.
dosikus вне форума  
Непрочитано 11.11.2006, 01:06  
sns13
Частый гость
 
Регистрация: 10.11.2006
Сообщений: 23
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sns13 на пути к лучшему
По умолчанию С фанатизмом.

Сообщение от dosikus
Чего то я не понял общие выводы ты повесил на PORTD0-D3 а перебираешь старшие разряды PORTD4-7
И причем активный у тебя должен быть 0 , а ты перебираешь 1.
ПОка идет только проба "а как это работает?"!
Логики там нету почти никакой.
Я по кускам смотрю что и как отрабатывает, потом буду логику давать и собирать докучи. Главная проблема, что обе переменных обнуляются.

Тем не менее спасибо за помощь и любые комментарии!!!
sns13 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна микросхема или схема ГУН greafuger Поиск схем. Делимся схемами 2 19.10.2009 14:42
ОЧЕНЬ нужен datasheet на CS4213GP или MB4213P или CSC4213 Skrut Информация по радиокомпонентам 1 22.05.2008 15:20
Нужна программа Энергетик-2 или подобная ndreich Информация по радиокомпонентам 0 12.10.2007 00:49
Как науч. пользоватся P-cad2002\4 или EDS 3.03 или EWU7.0 ? airats Proteus, KiCAD и другие ECAD 5 25.04.2007 23:15


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


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