roboforum.ru

Технический форум по робототехнике.


Нужна помошь в освоении proteus.

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

Re: Нужна помошь в освоении proteus.

Сообщение Vovan » 08 янв 2012, 22:56

А что компилятор говорит по поводу программы?
В какой момент зависает Протеус?
Ваще-то лучше весь код опубликовать, тогда си-шники точно подскажут в чем проблема.
ЗЫ: я уже говорил, повторюсь - не лучше ли сначала светодиодом поморгать в Протеусе? :wink: Экономия времени и сил гарантирована в освоении софта. :)
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 13 янв 2012, 10:01

Компилятор доволен! В момент когда я нажимаю на значок start. Я лучше с этим разберусь.

Добавлено спустя 10 минут 13 секунд:
Код: Выделить всёРазвернуть
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 13.01.2012
Author  : NeVaDa
Company :
Comments:


Chip type               : ATmega8L
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega8.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x0F;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=1 State4=1 State3=0 State2=0 State1=0 State0=0
PORTD=0x30;
DDRD=0x3F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
      {
      // Place your code here
         while(1) {
{if (PINB.0==0)
{PORTD.0=1 ;
PORTD.1=0;}}

{if (PIND.1==0)
{PORTD.0=0 ;
PORTD.1=1;}}

{if (PIND.2==0)
{PORTD.2=1;
PORTD.3=0;}}

{if (PIND.3==0)
{PORTD.2=0 ;
PORTD.3=1;}}
}

      };
      };



Мой код в CVavr
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 14 янв 2012, 18:49

Помогите)) SOS)
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение Vovan » 14 янв 2012, 20:52

не думаю что на сигнал SOS можно получить помощь, не зная координат и проблем терпящего бедствие. Среди людей ИМХО не писаный закон: "люди помогите! в доме пожар!" (есть описание проблемы и указано место катастрофы).
ИМХО: нужно указать проблему (конкретно) и в каком месте проблема (координаты), кроме того неплохо указать на почве чего она возникла, а так же чего хочется получить при ее решении.
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Нужна помошь в освоении proteus.

Сообщение yak-40 » 14 янв 2012, 21:32

Взглянул на твой код.
Ты уж определись, PORTD у тебя на вход или на выход работать будет :wink:

Добавлено спустя 7 минут 5 секунд:
Да и PORTB тоже непонятно.
INDEPENDENT писал(а):DDRB=0x0F;

вроде как PORTB.0 установлен на выход,
а тут ты его опрашиваешь как вход
INDEPENDENT писал(а):if (PINB.0==0)
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Нужна помошь в освоении proteus.

Сообщение Vovan » 14 янв 2012, 22:55

ага, я уже писал об этом:
Vovan писал(а):сразу у меня вопрос (хоть я в си ни бум-бум :roll: )
If (PINB.0==1) почему?

но INDEPENDENT ответил:
INDEPENDENT писал(а):Я лучше с этим разберусь.
я и не вмешивался :roll:
А ваще INDEPENDENT тому кто "стучится в дверь, откроют ее", не стесняйся - пиши задавай вопросы, глядишь и выплывем, ничего в этом страшного нет - инфа лишней не бывает...
Народ, бывает такие вопросы задает - что просто падаешь навзничь, хоть и сидишь.........
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 15 янв 2012, 13:29

Код: Выделить всёРазвернуть
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 15.01.2012
Author  : NeVaDa
Company :
Comments:


Chip type               : ATmega8L
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega8.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=1 State2=1 State1=1 State0=1
PORTB=0x0F;
DDRB=0x0F;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=1 State4=1 State3=0 State2=0 State1=0 State0=0
PORTD=0x30;
DDRD=0x3F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
      {
      // Place your code here
          while(1) {
{if (PINB.0==0)
{PORTD.0=1 ;
PORTD.1=0;}}

{if (PIND.1==0)
{PORTD.0=0 ;
PORTD.1=1;}}

{if (PIND.2==0)
{PORTD.2=1;
PORTD.3=0;}}

{if (PIND.3==0)
{PORTD.2=0 ;
PORTD.3=1;}}
}

      };
      };

Я исправил, наверно я , что то не понимаю, грустно. Программа ISIS зависает, и Window 7 моментально предлагает ее закрыть. Подскажите в чем ошибка, пожалуйста, вроде все исправил.

Добавлено спустя 1 минуту 22 секунды:
Спасибо, что Вы помогаете!
Вложения
Безымянный.png
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение yak-40 » 15 янв 2012, 14:10

INDEPENDENT писал(а):Я исправил

Ничего ты не исправил.
Надо правильно настроить порты ввода/вывода. Ты используешь PORTB для кнопок, а PORTD для управления драйвером.
Значит надо настроить PORTB на вход:
DDRB=0x00;
Включить подтягивающие резисторы:
PORTB=0x0F;
А PORTD настроить на выход:
DDRD=0x3F;

З.Ы. выложи проект в протеусе, посмотрим.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 15 янв 2012, 14:33

Вот, выложил. Я использую CodeWizardAVR для проставления портов, и там ,как я понял, я делаю грубейшие ошибки, так как не понимаю. Я не владею языком си, владею паскалем.
Вложения
контроллер.rar
(17.98 КиБ) Скачиваний: 0
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение Vovan » 15 янв 2012, 18:11

Для написания такой программы (я мождь ошибаюсь :oops: ) проще ознакомиться всё таки с си и осознанно написать сию крохотную програмульку на осознанном си... Я вот не шарю, но точно знаю - сумел бы максимум за час. Потому что точно знаю ЧЕГО ХОЧУ, но не умею это написать на си, для этого бы и ознакомился с начальными командами си :)
Метод тыка - штука нужная, не отрицаю, но не в этом случае, т.к. здесь он мне напоминает такое: Чел. не знает немец., но знает неск. слов на немец. и перебирая их методом тыка пытается завязать диалог с немцем...
Такое или похожее по сути, кстати в каком-то фильме видел...
Потом чувак махнул рукой, объявив что мол немец просто не грамотный, или глухой, что-то типо того...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 15 янв 2012, 18:26

Простейшие команды знаю :присвоение значения переменные, циклы, условия. Я не понимаю по какому принципу работают порты и в каком случае in а в каком out
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение mikkey finn » 15 янв 2012, 19:37

Тут надо исходить из задачи. Кнопка - что такое? В общем случае - устройство управления, ты кнопкой управляешь, а значит ВВОДИШЬ информацию в систему.
А двигатели - это что такое? Это исполнительные механизмы, вместе с драйвером двигателей. Ты ими управляешь, для этого надо из системы управления ВЫВЕСТИ информацию. Соответственно те ноги микросхемы, к которым подключены кнопки надо настроить на ВВОД. А те, к которым подключены двигатели - на ВЫВОД. Как это сделать - надо читать справку по своей среде программирования. Выше написали, как на ассемблере. На Си можно делать вставки ассемблера, на CVAVR, возможно, для этого используется специальный оператор. Как определить, какие конкретно ноги порта настроить - надо читать даташит на микросхему-контроллер.
mikkey finn
 
Сообщения: 104
Зарегистрирован: 09 авг 2011, 17:15
Откуда: Волжский

Re: Нужна помошь в освоении proteus.

Сообщение yak-40 » 15 янв 2012, 19:55

Рекомендую:http://www.avr123.nm.ru/
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Нужна помошь в освоении proteus.

Сообщение INDEPENDENT » 15 янв 2012, 19:57

Код: Выделить всёРазвернуть
Сигнатура проблемы:
  Имя события проблемы:   APPCRASH
  Имя приложения:   ISIS.EXE
  Версия приложения:   7.5.3.7401
  Отметка времени приложения:   00000000
  Имя модуля с ошибкой:   StackHash_0f84
  Версия модуля с ошибкой:   6.1.7601.17514
  Отметка времени модуля с ошибкой:   4ce7ba58
  Код исключения:   c0000374
  Смещение исключения:   000ce653
  Версия ОС:   6.1.7601.2.1.0.256.1
  Код языка:   1049
  Дополнительные сведения 1:   0f84
  Дополнительные сведения 2:   0f8433cce75775c9477032d566da5888
  Дополнительные сведения 3:   02bb
  Дополнительные сведения 4:   02bb91f41830cac57807397b0543563f

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
  C:\Windows\system32\ru-RU\erofflps.txt

У меня windows 64 битная. Может из-за этого ошибка?
INDEPENDENT
 
Сообщения: 52
Зарегистрирован: 28 окт 2010, 21:37
Skype: independent645

Re: Нужна помошь в освоении proteus.

Сообщение mikkey finn » 15 янв 2012, 19:59

Не знаю, как 7.5 версия, у меня 7.7 sp2 утащенная с торрентов на windows7 x64 работает без падений.
mikkey finn
 
Сообщения: 104
Зарегистрирован: 09 авг 2011, 17:15
Откуда: Волжский

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 14