Проблема то ли в протеусе то ли c кодом?

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 64
Зарегистрирован: Вт сен 10, 2019 16:18:33

Сообщение shrus43 »

Написал простенький код включения светодиода по двум условиям,но в протеусе светодиод начинает моргать и все начинает глючить,сильно грузится CPU,началось все с того как решил побаловаться со сторожевым таймером,его убрал и вообще поставил другой контроллер и прошивку и все равно такая байда происходит,помогите разобраться,может проблема с код виженом,может с фьюз битами не то что-то?

Код: Выделить всё

#include <mega16.h>

void main(void)
{
DDRB.3 = 1;
PORTB.3 = 0;

DDRB.1 = 0;
PORTB.2 = 1;

PORTB.1 = 1;
DDRB.2 = 0;

while (1)
      {
      if(PINB.3 == 1) {PORTB.3 = 0;}
      if(PINB.1 == 0 && PINB.2 == 0) {PORTB.3 = 1;}
      }
}
Вложения
СКРИН ПРОТЕУСА.jpg
(248.2 КБ) 205 скачиваний
Реклама
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Да кто ж вас всех на протеус подсаживает? Выбросьте кодевижн, протеус, книжки в зубы, AVR-Studio. AVR Toolchain. В студии есть симулятор. Разберетесь.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

зачем порт б.3 от себя рулится?
не проще сделать if ((PINB.1==0)&&(PINB.2==0)) {PORTB.3=1;}else{PORTB.3=0;};
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Симулятор AVR-Studio сразу же показал бы косяк. А если бы он книгу по архитектуре МК прочитал ещё...
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Сообщения: 1978
Зарегистрирован: Ср июл 17, 2013 13:55:57

Сообщение NStorm »

Потому что вот это его всегда выключает, если он включен:
if(PINB.3 == 1) {PORTB.3 = 0;}
А следом он включается пока нажаты кнопки. В общем проблема в коде, а не протеусе.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

if(PINB.3 == 1) {PORTB.3 = 0;}
это примерно тоже самое:
СпойлерИзображение
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

А что ни кто внимание на предупреждение не обратил?
[AVR MEMORY] Writing to memory location 0x08F9 outside of memory size 0x0460
shrus43 писал(а):и вообще поставил другой контроллер
куда поставили другой контроллер?
Проверьте в CVAVR Project-> Configure вкладка C Compiler строка Chip целевой контроллер под который собирается прошивка?
Открыл глаза
Сообщения: 64
Зарегистрирован: Вт сен 10, 2019 16:18:33

Сообщение shrus43 »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3766105#p3766105"]Да кто ж вас всех на протеус подсаживает? Выбросьте кодевижн, протеус, книжки в зубы, AVR-Studio. AVR Toolchain. В студии есть симулятор. Разберетесь.[/uquote]
Начал с этого и как-то привык,да и проблема не в CV и протеусе,а во мне :facepalm:

Добавлено after 53 seconds:
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3766109#p3766109"]зачем порт б.3 от себя рулится?
не проще сделать if ((PINB.1==0)&&(PINB.2==0)) {PORTB.3=1;}else{PORTB.3=0;};[/uquote]
Да чет,тупанул,вы правы,не знал что в теле скобок,еще скобки нужны,я нубас пока что в этом деле

Добавлено after 6 minutes 45 seconds:
[uquote="Dimon456",url="/forum/viewtopic.php?p=3766207#p3766207"]А что ни кто внимание на предупреждение не обратил?
[AVR MEMORY] Writing to memory location 0x08F9 outside of memory size 0x0460
shrus43 писал(а):и вообще поставил другой контроллер
куда поставили другой контроллер?
Проверьте в CVAVR Project-> Configure вкладка C Compiler строка Chip целевой контроллер под который собирается прошивка?[/uquote]
Ну убрал в протеусе все и создал новый проект,создал новый проект с другим микроконтроллером,да прошивка под другой камень писалась :? Настроил короче кв и вроде норм

Добавлено after 1 minute 27 seconds:
Всем спасибо за помощь,с наступающим новым годом!!!! :))
Ответить

Вернуться в «AVR»