Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
_Колючий_
4 / 4 / 3
Регистрация: 05.08.2012
Сообщений: 125
1

Не выполняется операция в цикле

24.04.2015, 00:37. Просмотров 365. Ответов 5
Метки нет (Все метки)

Почему-то при повторении цикла игнорируется первый оператор.

Привожу нехитрый код.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <avr/io.h>
 
int main(void)
{
    DDRC |=(1<<1);
    while(1)
    {
        
        PORTC |=(1<<1);
        PORTC &=(~(1<<1));
    
        
        //TODO:: Please write your application code 
    }
}
И отладчик в AVR Studio постоянно утверждает, что 1-й бит установлен в 0.

Добавлено через 1 час 31 минуту
Проверил на железе. Оказалось, что это "особенность" встроенного эмулятора.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2015, 00:37
Ответы с готовыми решениями:

Не выполняется операция сервиса
Кода очень много, да и без отладчика все равно ничего не поймешь, поэтому я просто выложу проект....

Не выполняется алгебраическая операция
Привет всем. Помогите найти ошибку. Описывать само задание проги не буду, напишу вкратце. Вводим...

Неправильно выполняется операция сравнения
Программа изначально не видела русский язык, но с этим я, вроде как, разобрался. Дальше встала...

Форму невозможно закрыть, пока выполняется операция
Сегодня пришел на экзамин.Препод посмотрел программу и сказал надо переделать.(прикрепил...

Получение строки из списка. Эта же операция в цикле
На форме имеются 2 лист бокса, в одном логины, в другом пароли. Нужно что бы брались строчки из...

5
NoobsEnslaver
135 / 47 / 2
Регистрация: 31.07.2014
Сообщений: 232
24.04.2015, 15:30 2
Да, у эмуляторов бывают капризы, но а вообще в таких случаях нужно ассемблерный листинг смотреть, там ведь тоже 2 команды то будет всего. А еще, при отладке выключай оптимизацию кода, хоть порты и объявлены как volatile, но береженного Бог бережет.
1
ValeryS
Модератор
7476 / 5661 / 723
Регистрация: 14.02.2011
Сообщений: 19,359
Завершенные тесты: 1
26.04.2015, 17:07 3
Цитата Сообщение от _Колючий_ Посмотреть сообщение
PORTC |=(1<<1);
а если так?
C
1
2
PORTC.1=1;
PORTC.1=0;
1
_Колючий_
4 / 4 / 3
Регистрация: 05.08.2012
Сообщений: 125
26.04.2015, 21:00  [ТС] 4
Дело не в этом ) Проверил на настоящем микроконтроллере - приведенный код работает. Это встроенный эмулятор-отладчик так оригинально отработал.
0
ValeryS
Модератор
7476 / 5661 / 723
Регистрация: 14.02.2011
Сообщений: 19,359
Завершенные тесты: 1
26.04.2015, 21:04 5
так я и предложил другой вариант, может к нему эмулятор лоялен
0
Metall_Version
2122 / 1259 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
Завершенные тесты: 2
27.04.2015, 00:00 6
Цитата Сообщение от _Колючий_ Посмотреть сообщение
И отладчик в AVR Studio постоянно утверждает, что 1-й бит установлен в 0.
а вы там смотрите ? может после второй команды, которая сбрасывает бит в 0 как раз?
а вообще смотрите асм как выше посоветовали
0
27.04.2015, 00:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2015, 00:00

Не выполняется условие в while цикле
Привет, пытаюсь протестировать код из книги, но у меня внезапно перестал правильно работать цикл. ...

Не выполняется оператор в цикле
Не выполняется оператор realdn в цикле while при первом прохождение цикла не могу понять из за...

Функция не выполняется в цикле
Всем привет. Вот код функции: function print_attribute_radio( $checked_value, $value, $label,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru