Страница 1 из 1

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

Добавлено: Пн дек 30, 2019 19:02:38
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;}
      }
}

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

Добавлено: Пн дек 30, 2019 21:57:33
Demiurg
Да кто ж вас всех на протеус подсаживает? Выбросьте кодевижн, протеус, книжки в зубы, AVR-Studio. AVR Toolchain. В студии есть симулятор. Разберетесь.

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

Добавлено: Пн дек 30, 2019 22:11:30
Ivanoff-iv
зачем порт б.3 от себя рулится?
не проще сделать if ((PINB.1==0)&&(PINB.2==0)) {PORTB.3=1;}else{PORTB.3=0;};

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

Добавлено: Пн дек 30, 2019 22:44:36
Demiurg
Симулятор AVR-Studio сразу же показал бы косяк. А если бы он книгу по архитектуре МК прочитал ещё...

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

Добавлено: Пн дек 30, 2019 23:22:30
NStorm
Потому что вот это его всегда выключает, если он включен:
if(PINB.3 == 1) {PORTB.3 = 0;}
А следом он включается пока нажаты кнопки. В общем проблема в коде, а не протеусе.

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

Добавлено: Вт дек 31, 2019 06:22:20
Ivanoff-iv
if(PINB.3 == 1) {PORTB.3 = 0;}
это примерно тоже самое:
СпойлерИзображение

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

Добавлено: Вт дек 31, 2019 07:22:59
Dimon456
А что ни кто внимание на предупреждение не обратил?
[AVR MEMORY] Writing to memory location 0x08F9 outside of memory size 0x0460
shrus43 писал(а):и вообще поставил другой контроллер
куда поставили другой контроллер?
Проверьте в CVAVR Project-> Configure вкладка C Compiler строка Chip целевой контроллер под который собирается прошивка?

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

Добавлено: Вт дек 31, 2019 14:31:58
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:
Всем спасибо за помощь,с наступающим новым годом!!!! :))