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

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

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

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

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

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


Закрытая тема
Опции темы
Непрочитано 01.12.2012, 20:47   #931
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
bytesPerSector работает
Да, это я что-то на неё съехал... по ошибке...

Сообщение от С.М.С Посмотреть сообщение
программа зависала в цикле
Не совсем понял, о каком цикле речь...?

_________________________________________________
Черт, как не хочется расчехлять Студию с ЖЦЦой...
Реклама:
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 01.12.2012, 20:55   #932
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Однако, непонятно в какой же момент получается ошибочное значение. Из Ваших описаний, если я их верно понял, следует что-то небывалое - при запрещенных прерываниях, сразу после присвоения - уже не то, что присваивали, я верно понял?
______________________
Я смотрю, этот же буфер используется при обмене через UART:
Код:
     buffer[i++] = '\n'; //appending 'Line Feed (LF)' character
     ...
     buffer[i++] = data;
может попробовать временно использовать другой буфер, "от греха"?
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 01.12.2012 в 21:13.
tempora вне форума  
Непрочитано 01.12.2012, 21:59   #933
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Раньше я зацикливал, думал мало ли, может какой сбой и переменная не успела записаться. Теперь про выше приведённое условие

так идёт по первой ветке, что правильно, так как 9-8=1 следовательно true
Код:
cli();
sectorPerCluster = bpb-›sectorPerCluster;
        if ( sectorPerCluster - bpb-›sectorPerCluster )
        {transmitString_F (PSTR("first way"));

            // ...
        } else {transmitString_F (PSTR("second way"));

            // ...
        }
transmitString_F (PSTR("sectorPerCluster ="));
transmitHex(CHAR, sectorPerCluster); transmitByte(' ');//
так идёт по второй ветке, потому как 9!=8.
Код:
cli();
sectorPerCluster = bpb-›sectorPerCluster;
        if ( sectorPerCluster == (bpb-›sectorPerCluster) )
        {transmitString_F (PSTR("first way"));

            // ...
        } else {transmitString_F (PSTR("second way"));

            // ...
        }
transmitString_F (PSTR("sectorPerCluster ="));
transmitHex(CHAR, sectorPerCluster); transmitByte(' ');//
как выше видно, сначала идёт присваивание, затем условие, только потом UART следовательно не он А получается как Вы сказали не возможное, что глобальной переменной не присваивается значение, точнее присваивается но в данном случае на 1 больше.
С.М.С вне форума  
Непрочитано 01.12.2012, 22:07   #934
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Для полной невозможности:

Код:
sectorPerCluster =0;
transmitString_F (PSTR("sectorPerCluster ="));
transmitHex(CHAR, sectorPerCluster); transmitByte(' ');//

sectorPerCluster =20;
transmitString_F (PSTR("sectorPerCluster ="));
transmitHex(CHAR, sectorPerCluster); transmitByte(' ');//
получаем, сначала 1, затем 21, т.е. переменная содержит на 1 больше, чем мы ей присваиваем. Это уже закономерность, но где эта 1 дописывается не понятно.
С.М.С вне форума  
Непрочитано 01.12.2012, 22:53   #935
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от С.М.С Посмотреть сообщение
но где эта 1 дописывается не понятно
А в окошке Disassembler пошагать?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 01.12.2012, 23:03   #936
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Да там всё хорошо, вроде. Поставил другую Mega32 значения в переменных то, что надо. Но проверка прошивки до конца не проходит, или студия глючная или МК.

Жесть, жестянская Попробую, посмотрим, что дальше с FAT будет. Спасибо за уделённое время.
С.М.С вне форума  
Непрочитано 02.12.2012, 00:11   #937
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

М-да, получается как в анекдоте - "Ну, вот на этой Меге и продолжайте (все будущие проекты)!"
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 05.04.2013, 22:46   #938
VladimirIvan
Гуру портала
 
Аватар для VladimirIvan
 
Регистрация: 26.01.2007
Адрес: Дивное, Россия
Сообщений: 14,796
Сказал спасибо: 7,279
Сказали Спасибо 18,273 раз(а) в 6,375 сообщении(ях)
VladimirIvan на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

....................
Вложения:
Тип файла: zip WinHex_17.zip (2.41 Мб, 40 просмотров)
__________________
Любое утверждение верно, включая и это.
VladimirIvan вне форума  
Непрочитано 29.04.2013, 19:49   #939
Митя
Временная регистрация
 
Регистрация: 09.11.2009
Сообщений: 43
Сказал спасибо: 44
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
Митя на пути к лучшему
Вопрос Re: Уроки СИ для AVR микроконроллеров

Джентльмены!
Помогите разобраться с прерываниями
понимаю что ошибка в ДНК но где именно
процедура прерывания не вызывается
без прерываний АЦП работает
Код:
#include ‹ioavr.h›
#include ‹intrinsics.h›

#pragma vector=ADC_vect
__interrupt void ADCint(void)
{
 PORTB ^= 0xFF;

}

int main (void) 
{
  __enable_interrupt();

    PORTB   = 0xFF; /* Give PORTB and the User LEDs an initial startvalue */
    DDRB    = 0xFF; /* Set PORTB as output */

/*** Настройка АЦП ***/ 
ADCSRA |= (1 ‹‹ ADEN) // Включение АЦП
             |(1 ‹‹ ADPS1)|(1 ‹‹ ADPS0)// предделитель преобразователя на 8
               |(1 ‹‹ ADATE )|(1 ‹‹ ADIE );	// Включение Auto Trigger и прерываний
ADMUX |= (0 ‹‹ REFS1)|(0 ‹‹ REFS0) // внешний ИОН
            |(1 ‹‹ MUX0)|(0 ‹‹ MUX1)|(0 ‹‹ MUX2)|(0 ‹‹ MUX3); // вход PC0
ADCSRA |= (1 ‹‹ ADSC);	// Начинаем преобразование
while(1){}
}
AVR 2560 платформа IAR
Заранее благодарю

Последний раз редактировалось Митя; 29.04.2013 в 20:51.
Митя вне форума  
Непрочитано 29.04.2013, 20:21   #940
s64
Временная регистрация
 
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
s64 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Митя Посмотреть сообщение
|(1 ‹‹ ADPS1)|(1 ‹‹ ADPS0);// предделитель преобразователя на 8
" ; " - нужно убрать, по моему.
s64 вне форума  
Закрытая тема

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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