Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

Нужна помощь новичку. Или я глючу, или Протеус или КодеВизио

Непрочитано 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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

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

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

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

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

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

Наврал прерывание раз в секунду ,
но это все равно много.....
dosikus вне форума  
Непрочитано 11.11.2006, 01:03  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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, время: 12:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.