роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Без описания
Zovar Post Id



Рядовой


Сообщений всего: 2
Дата рег-ции: Авг. 2014  



Ребята!! Хочу программировать МК!!! Только начал... Смущение Проблема с ПРОТЕУСОМ, а именно - написал программу в ATMEL STUDIO (писал по образцу - автор обьяснил доходчиво, я врубился), захотел смоделировать программу в протеусе - НЕ РАБОТАЕТ!!!!!!! программа состоит в том, что светодиод подключенный через резистор к земле мигает!!! А он не мигает!!!!!! вот листинг программы:

#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000


int main(void)
{
DDRA = 0b0000001;
PORTA = 0b0000001;
while(1)
{
DDRA = 0b0000001;
_delay_ms(1000000);
DDRA = 0b0000000;
_delay_ms(1000000);

}
}



В АТМЕЛ СТУДИО выбрал МК Atmega8515, в протеусе аналогичный
Прикреплено изображение
123123213.jpg

 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



диод вверх ногами.
а вообще:
у контроллера возле пинов есть маленькие цветные квадратики красный - 1, синий -0, серый - вход.
а еще есть такой элемент- LogicProrobe - большой цветной прямоугольничек
и на случай, если надо сброс сделать или еще там что - есть такой элемент- LogicState

(Отредактировано автором: 18 Августа, 2014 - 09:25:11)

 
 Top
Zovar Post Id



Рядовой


Сообщений всего: 2
Дата рег-ции: Авг. 2014  



Predator пишет:
диод вверх ногами.
а вообще:
у контроллера возле пинов есть маленькие цветные квадратики красный - 1, синий -0, серый - вход.
а еще есть такой элемент- LogicProrobe - большой цветной прямоугольничек
и на случай, если надо сброс сделать или еще там что - есть такой элемент- LogicState



перевернул диод - не помогло(
на выходе у ножки КРАСНЫЙ квадратик, на входе у резистора КРАСНЫЙ квадратик, на входе у диода СИНИЙ
(Добавление)
Разобрался сам) оказалось что резистор не имеет фактической связи с диодом (в программе смотрится что все связанно, оттащил резистор - увидел что ничего...))
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



И зачем такую фигню в протеусе то? Что хоть сразу в дебри. Там только то надо прогонять, что сам придумал и чего еще никто не делал. А эта ерунда стопудово работает! Не лезь в дебри.
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



ну зачем так сразу - дебри.
тут имея опыт с контроллерами - берешь новый и думай : может сброс нужен какой или клоки проинициировать или кроме локального разрешения каждого порта нужно их еще разрешить впринципе - вот и рождается подобный проект...
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



Я вот чего-то не понял, 1000000ms это же 1000 секунд? Или я не прав?
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Комбайн из-за колоска заводить. Это не глобальный проект. Это как на фото машины номера закрасить перед размещением на сайте продаж, надо фотошоп освоить. Однако, в паинте можно.
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



Цитата:
Я вот чего-то не понял, 1000000ms это же 1000 секунд? Или я не прав?

прав, только там один черт то-ли байт передается то-ли слово и от миллиона младшая часть остается.
Цитата:
Комбайн из-за колоска заводить

тут скорее разбираясь, что за комбайн - скосить колосок не выпуская его на поле.
ну или фотошоп освоить начиная с закраски номера.
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Я многих видел которые хотели освоить мк. После первого же эксперимента теряли интерес. Пусть тс пару схем так испробует а потом уже определяется.
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Быстро завязал молодной-неопытный. Но настрой-то был - ну боевой http://myrobot.ru/forum/im/emoticons/up.gif
 
 Top
irakez21 Post Id


Рядовой


Сообщений всего: 1
Дата рег-ции: Окт. 2014  



Уважаемые грамотные форумчане! Очень прошу Вас помочь мне с кодом, который я написал в CVAVR. Так как я только начинающий программер, то наверняка допустил массу ошибок, но часть программы работает исправно. Проверял все в протеусе. Не исключено, что ее можно как-то улучшить. Использовал контроллер attiny13. Хотел собрать плату управления питания одной кнопкой. При нажатии кнопки должен был загораться один светодиод. При пятикратном нажатии - 5 раз вспыхнуть другой и перейти в другой режим, в котором при простом нажатии кнопки ничего не происходит, но опять при пятикратном нажатии - вспышки второго диода и переход обратно в первый режим. Первый режим вроде работает более-менее (возможно неточности с таймером), но второй - барахлит. Вместо неактивности кнопки происходят вспышки второго светодиода и перехода в первый режим нет.
Если кто знает, подскажите способы решения.

Код программы выкладываю ниже:

Цитата:

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 18.10.2014
Author : PerTic@n
Company : If You Like This Software,Buy It
Comments:


Chip type : ATtiny13A
AVR Core Clock frequency: 0,018750 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 16
*****************************************************/

#include <tiny13a.h>
#include <delay.h>
char count;
char i;
char hold;
char w = 1;
char push;


/******************************РАБОТА ПРОГРАММЫ**********************/



// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
count++;
if (count > 5)
{count = 0;
}
}

// Declare your global variables here

char not(char w)
{
push = 0;
while (w == 0)
{
if (PINB.0 == 0)
{
push++;
}

if ((PINB.0 == 1) && (count > 3) && (push >3))
{
push = 0;
count = 0;
}
if ((push == 5) && (count < 5))
{
for (i = 0; i < 4; i++)
{
PORTB.2 = 1;
delay_ms(200);
PORTB.2 = 0;
delay_ms(200);
}
push = 0;
hold = 0;
w = 1;
};
};
return w;
};

void main()
{

// Declare your local variables here

// Crystal Oscillator division factor: 256
#pragma optsize-
CLKPR=0x80;
CLKPR=0x08;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In
// State5=T State4=T State3=T State2=0 State1=0 State0=P
PORTB=0x01;
DDRB=0x06;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 0,073 kHz
// Mode: Normal top=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x04;
TCNT0=0x00;
OCR0A=0x49;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x04;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR0=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// Global enable interrupts
#asm("sei")

while (1)
{
if (w == 1)
{
while (w == 1)
{
if (PINB.0 == 0)
{
push++;
};
while (PINB.0 == 0)
{
PORTB.1 = 1;
};
hold = 1;
PORTB.1 = 0;

if ((push == 5) && (count < 5))
{

for (i = 0; i < 4; i++)
{
PORTB.2 = 1;
delay_ms(200);
PORTB.2 = 0;
delay_ms(200);
};
push = 0;
hold = 0;
w = 0;
};
};

}
else
{
w = 0;
not(w);
};
};
};


Прикреплено изображение
Безымянный.jpg

(Отредактировано автором: 21 Октября, 2014 - 16:22:54)

 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru