Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AVRStudio не показывает значение переменных, значение переменных при отладке всегда 0 
:(
    Опции темы
makwen
Дата 2.12.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: 1
Всего: 1



Цитата(seatouch @  2.12.2008,  15:11 Найти цитируемый пост)
        while (i<400000)   - цикл в AVRStudio работает. Ставил разные значения задержки - после прошивки светодиод все равно не маргает.        {           i++ ;        }


Цитата(seatouch @  2.12.2008,  15:11 Найти цитируемый пост)
volatile unsigned int i ; 


ты обьявил i как unsigned int, который имеет размер 2 байта. Т.е. максимальное значение 65535, а у тебя условие i<400000, соответственно оно всегда будет верно. И ты с цикла никогда не выйдешь. 

PM MAIL   Вверх
Mazzi
Дата 2.12.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Схема содержит короткое замыкание по питанию, смотри вывод 30.
Почитай вот это, там похоже такая же проблема с фьюзами.
http://forum.vingrad.ru/act-ST/f-36/t-2374.../p-1707132.html

Фьюзы для 64 меги описаны здесь http://ulei.by.ru/Fuses_Ru.htm

Удачи!


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
seatouch
Дата 2.12.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



[QUOTE=Mazzi,2.12.2008,  15:57]Схема содержит короткое замыкание по питанию, смотри вывод 30.
Почитай вот это, там похоже такая же проблема с фьюзами.
http://forum.vingrad.ru/act-ST/f-36/t-2374.../p-1707132.html

Фьюзы для 64 меги описаны здесь http://ulei.by.ru/Fuses_Ru.htm

Удачи!


Сорри, у меня там конденсатор стоит 0.1 мкФ. Это я чего-то маху в схеме дал. Перед установкой МК на место я всю схему прозвонил на КЗ.
Спасибо за ссылку, покопаю.

Это сообщение отредактировал(а) seatouch - 2.12.2008, 16:54
PM MAIL   Вверх
seatouch
Дата 2.12.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



УРА!!! Светодиод заморгал. Схема нормальная, программатор работает.
Правда кроме с.д. больше ничего не работает. Буду с кодом разбираться. Больше всего меня беспокоит вопрос как посмотреть и прошить fuse биты? Порыл инет, куча описания как и что такое fuse, а как дело доходит до прошивки, предлагаются разные программы, у меня програматор "Жгучий кабель" со спец. программой (командной ктрокой) http://www.atmel.ru/Hardware/Hardware5.htm через общеизвесные программы он не прошивает, им можно как-нибудь посмотреть fuse биты?
PM MAIL   Вверх
Mazzi
Дата 3.12.2008, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: 9
Всего: 21



Поищи программатор UniProf - он схемно очень прост (6 резисторов и 3 диода) и позволяет шить фьюзы.
 
Могу выслать.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
seatouch
Дата 3.12.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
seatouch
Дата 5.12.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2008

Репутация: нет
Всего: нет



Спасибо огромное Всем за помощь! Фьюзы не менял, значит они правильные. Привожу работающий код АЦП для ATMega644 на Си (AVRStudio + AVR-GCC). 

#include <avr\io.h>
#include <avr\delay.h>

volatile unsigned int iDelay, i ;  //время задержки моргания светодиода.
volatile unsigned char cADCReg, cADCResult ;

void main(void)
{

/*
Использовать для АЦП будем только ножку PA0, 
она не будет использоваться как цифровой вход,
по этому в регисте DIDR0 бит ADC0D устанавливаем в 1.
*/
DIDR0=0x01 ;

/*
Светодиод подключен к PB0, значит эту ножку мы програмируем 
на выход.
*/
DDRB = 0x01 ;
PORTB = 0b11111110 ;


/*
Настройка АЦП.
Что бы на ножку AREF подавалось внутреннее напряжение 
2.56V надо в битты REFS1 и REFS0 написать единицы.
Бит ADLAR устанавливается в 1 т.к. это сдвигает биты влево
нас это устраивает т.к. нам не нужна большая точность, достаточно 
8и старших битов. 
.
Биты MUX4-0 устанавливаем в 0 т.к. в этом случае измерение
будет проводится с ножки ADC0.
Число в регистре должно быть таким 11 1 00000 = 
*/
ADMUX = 0b11100000 ; 

ADCSRA = 0b10000000 ;

//Можно установить деление в 3х младших битах ADCSRA.
//Но пока оставляем их в нулях.

    while (1)
    {
     //Запускаем АЦП
        ADCSRA|=0x40; // как только измерение закончится 
                              //этот бит пропадет, зато установится
                              // бит ADIF.
        
        //Ждем завершения преобразования
        cADCReg = 0b01010000 & ADCSRA ;

        while (cADCReg != 0b00010000)
        {
            cADCReg = 0b01010000 & ADCSRA ;  //Делаем поразрядное "и" 
                                             //что бы оставить только 
                                             //нужные нам биты ADSC и ADIF.
        }

        //Считываем данные ADCH (только старших бит)
        cADCResult = ADCH ;
        
        //Расчиттываем задержку моргания светодиода
        iDelay = cADCResult * 40 ; //умножаем число на 40 это будет время задердки моргания светодиода 


        i=0 ;
        while (i<iDelay) 
        {
            i++ ;
        } ;

        PORTB = PORTB ^ 0x01 ;    
    }
}  


PM MAIL   Вверх
cardinal
Дата 5.12.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



seatouch, пользуйся тегом "Код"!

Добавлено через 1 минуту и 47 секунд
Цитата(seatouch @  2.12.2008,  13:11 Найти цитируемый пост)
Уважаемые инжинеры

Кто кто? smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0936 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.