Jump to content
Роман Ермоленко

Не сбрасывается порт в 0

Recommended Posts

Знающие люди, пожалуйста, подскажите в чем проблема. Вот код в AVR Studio

while(1){
		/* It's also possible to control a single or a set of pins on a port.
	 *
	 * Setting pin PD0 high in order to turn off LED0.
	 */
	PORTD |= (1 << 0)|(1 << 1)|(1 << 2)|(1 << 3)|(1 << 4)|(1 << 5)|(1 << 6)|(1 << 7);

	// Setting pin PD1 low in order to turn on LED1.
	PORTD &= ~((1 << 0)|(1 << 1)|(1 << 2)|(1 << 3)|(1 << 4)|(1 << 5)|(1 << 6)|(1 << 7));
	
	}

Устанавливаю 2 брекпоинта на командах, дабы просмотреть что будет в симуляторе на порту. Первая команда спокойно выставляет все биты порта D в лог. 1, а вторая ни в какую не хочет их сбрасывать в лог.0. При этом переход по циклу не происходит (будто бы зависает на последней команде), сколько F5 не нажимай.

Edited by Роман Ермоленко

Share this post


Link to post
Share on other sites
Guest Daan

Пробуй

PORTD=0xFF;

PORTD=0;

В примере что-то синтаксис подозрителен. В симуляторе запиши результат не в порт, а в регистp и смотри.

Share this post


Link to post
Share on other sites

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее

Барьерные силовые клеммы от Degson – расширение складского ассортимента Компэл

Обновленная линейка барьерных клеммных блоков Degson, поступивших на склад Компэл, содержит широкий ряд клемм, подходящих для соединения проводников различного сечения (от 22AWG до 10AWG). Барьерные клеммные колодки сочетают в себе удобство, простоту и надежность соединения. Это достигается за счет ответственного производства и использования высококачественных материалов. Винтовые клеммные блоки барьерного типа Degson предназначены в первую очередь для коммутации в сильноточных цепях, например, в распределительных и измерительных системах.

Подробнее

Материалы вебинара «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок»

Опубликованы материалы вебинара, посвященного решениям Analog Devices для гальванической изоляции. На вебинаре рассказали о: технологии гальванической изоляции iCoupler, цифровых изоляторах, технологии isoPower, гальванически изолированных интерфейсах (RS-485, CAN, USB, I2C, LVDS) и многом другом. Материалы вебинара будут интересны разработчикам промышленной автоматики и медицинской техники.

Подробнее

Guest Daan

Попробовать переход по F10.

На код с второго сообщения реакция та же?

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

Share this post


Link to post
Share on other sites

Для начала попробуй не симулятор студии, а proteus. И избавляйся от такого количества лог. операций, они там абсолютно не нужны. Вся эта абракадабра пишется вот так:

PORTD |= 0xFF;
PORTD &= ~0xFF;

А если сбрасывать все биты порта то выгоднее написать так:

PORTD = 0;

 

Share this post


Link to post
Share on other sites
6 минут назад, BARS_ сказал:

И избавляйся от такого количества лог. операций, они там абсолютно не нужны

чем вам запись не навитцо,  вполне логичная правильная запись , особенно если в дальнейшем есть переназначение выводов,

и да,  никаких логических операций там нет , компилятор сразу подставит ваше 0хFF 

Share this post


Link to post
Share on other sites
1 час назад, IMXO сказал:

вполне логичная правильная запись

Что в ней логичного и правильного? Только глаза ломать.

 

1 час назад, IMXO сказал:

особенно если в дальнейшем есть переназначение выводов

Это то тут при чем? Все назначение выводов прекрасно описывается в дефайнах.

Share this post


Link to post
Share on other sites
В 17.11.2018 в 18:55, BARS_ сказал:

Это то тут при чем? Все назначение выводов прекрасно описывается в дефайнах.

да притом , в дифайнах описываются номера выводов 

#define SEG_A  (1<<7) // 
#define SEG_B  (1<<6) //  LED
#define SEG_C  (1<<5) //      A
#define SEG_D  (1<<4) //   F     B
#define SEG_E  (1<<3) //      G
#define SEG_F  (1<<2) //   E     C
#define SEG_G  (1<<1) //      D     H
#define SEG_H  (1<<0)

в коде

PORTB |= SEG_A|SEG_B|SEG_G;
//или 
PORTB |= SEG_A+SEG_B+SEG_G;

а не магические числа вида 0x73 , 0xC4 и тд

и в случае переназначения выводов меняется восемь строк дефайнов , а не ползается по всему коду в поиске/замене магических чисел

Share this post


Link to post
Share on other sites
2 минуты назад, IMXO сказал:

и в случае переназначения выводов меняется восемь строк дефайнов , а не ползается по всему коду в поиске/замене магических чисел

Вы вообще понимаете, что пишите?

Запись:

#define SEG_A  (1<<7)
  
равна записи
  
#define SEG_A  0х80

С остальными аналогично. С такой записью все прекрасно меняется в дефайнах и нету бардака в виде бесконечных строк кода. И строка

PORTB |= SEG_A|SEG_B|SEG_G;

прекрасно будет работать.

Share this post


Link to post
Share on other sites
8 минут назад, BARS_ сказал:

Запись:


#define SEG_A  (1<<7)
  
равна записи
  
#define SEG_A  0х80

капитан очевидность?  представь себе знаю, и еще знаю что первая запись однозначно читается как  бит 7 = лог1, вторая   магическое число 0х80.

Share this post


Link to post
Share on other sites

И что же в нем магического? Неужели не видно, что это установка 7 бита в 1? Вы точно программист?

Share this post


Link to post
Share on other sites

все с тобой понятно. оставайся при собственном мнении

Share this post


Link to post
Share on other sites

Мдя. Для кого-то магия, для кого-то вполне нормальное положение вещей. (Я в колдунах :) )


Я не раздаю удочки. Я продаю рыбу.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

  • Similar Content

    • By Teo74
      Есть проект состоящий из Atmega 8, Uart, и lcd Nokia 5110.Проблема лишь в том что дисплей 5110 очень маленький, так как показания нужно читать с расстояния 3-6 метров. В интернете нашёл 7 дюймовый TFT дисплей  но не понимаю как его использовать в моём проекте. В протеус его нет, библиотек для него тоже не нашёл. Если я правильно понял, у этого дисплея есть свой контролер STM32, но как совместить с Atmega 8? Как симулировать в протеус?
    • By Любовь Бертулите
      Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика.
      График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем.
      Место работы – г. Екатеринбург.
      Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также:
      Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет:
      Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы.
      Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь. 
       
    • By Trute
      Цена 700 р.
      Доставка по России Почтой России от 250 р. до 400 р. зависит от региона.
       
       Продаётся Плата в Сборе с Прошитым Микроконтроллером.
      ОПИСАНИЕ:
      Это устройство запитывается от любого источника питания 5 вольт, например, USB порт ПК или ноутбука, зарядка для телефона и т. п..., и не нуждается в подключении к источнику 12 вольт, в отличии от других прототипов.
      Предназначено для восстановления "убитых" микроконтроллеров AVR ATmega и ATtiny путем записи в них корректных значений бит фьюзов.
      Atmega Fusebit Doctor исправит Ваши брикнутые микроконтроллеры за доли секунды.
      Поддерживаемые контроллеры:
       
       



       
    • By Evgeniy90
      Здравствуйте! Столкнулся со следующей проблемой: при сборке МД "Шанс" дошел до этапа прошивки МК, в итоге запорол 3 атмеги. Прошивал 3 способами:
      1. Через Arduino UNO(As ISP) просто МК
      2. Через Arduino UNO(As ISP) МК внутрисхемно(соответственно с обвязкой)
      3. Через USB ASP внутрисхемно(с обвязкой соответственно).
      Вышло так, что в наличии кварца 11.0592 МГц не было, и я временно впаял 12 МГц. Прошил трижды всё правильно(фьюзы , контакты и т.д). После прошивки просто не видит МК (ну и плата не работает без МК.да и Бог с ней, но МК всеравно не могу считать). В чем причина понять не могу. Одно думаю, что это разница между 11.0592 и 12 МГц. Посоветуйте как решить проблему.
      Коды ошибок после прошивки во всех трёх случаях одинаковые:
      Sinaprog -invalid device signature
      Averdude -avrdude: warning: cannot set sck period, please check for usbasp firmware update
      target don't answer
    • By Николай Станкевич
      Можно ли на микроконтроллерах ATmega реализовать обработку сигналов в радио оборудовании?
      И какой для этих целей лучше подойдёт?
      То есть можно ли перестройку и подстройку частот на них сделать?
      Модуляцию
      Кодирование и тому подобное
      И какую литературу посоветуете?
×
×
  • Create New...