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


 Страниц (4): « 1 2 [3] 4 »   

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



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



maratino, а точнее PB0 и PB1 отвечают (вроде) за аппаратный шим в мега8 и тини2313. Но я уже эти ножки отдал для реверса двигателей, и поэтому буду делать програмный шим (скорось моторов) на PC0 и PC1. Вотьсь...
перепояяние для меня - лучше сто пудов рывнуть, не вижу нихера
 
 Top
maratino Post Id



Рядовой


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



Спасибо! я понял суть проблемы. Всем спасибо за отзыви.
У меня есть второй вопрос. а как можно в БЕЙСИКЕ сделать так, что бы два св-диода работали одновремено, но с разными параметрами. Например: Один мигает резко, и в то же время, паралельно, другой плавно. Это для звездного неба.
 
 Top
elmot Post Id



Гуру


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



считать времена, как тут еще сделаешь
 
 Top
Петр Киселев Post Id



Гуру


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



maratino, вспомни способность глаза еще видеть то, что уже погасло!
А еще вспомни про гармоники и их наложение друг на друга. Светодиод не лампа накаливания! Его быстродействие гораздо больше.
 
 Top
elmot Post Id



Гуру


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



Не парь человека.
 
 Top
Петр Киселев Post Id



Гуру


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



Не понял! Я, наоборот, пытаюсь подтолкнуть к решению его проблемы.
Ведь можно на одном порту создать две гармоники. Одну - просто мигание светодиода, другую - длительную синусоиду. Подключить на зтот один порт два светодиода по разному повернутых. Один работает от положительной составляющей, другой - от отрицательной.
Мне кажется это и будет решение его желания засветить два светодиода. Верхнюю часть синусоиды убрать простым диодом.
Впрочем, можно задействовать и два порта.
 
 Top
elmot Post Id



Гуру


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



Нихт. Здесь рыбы нет. Программный ШИМ или как я рассказал, только с 2 диодами.
У человека проблема с алгоритмами, а не с дифицитом ног.
 
 Top
maratino Post Id



Рядовой


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



Я так поимаю, что МК и сам язык программироваия, то же влияют на возможности. Скорее всего, надо как то переорентироваться на Си. У Си , я как понял, больше возможостей
 
 Top
Vladimir72 Post Id



Великий стратег


Сообщений всего: 193
Дата рег-ции: Май 2012  



На Си много уроков. Язык Си на 2-м месте среди языков программирования,
первое место всегда меняется С++.С#,Java. А Си стабильно на 2-м месте его можно рассматривать как базовый. Для AVR проще программировать на Си
 
 Top
Predator Супермодератор Post Id


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


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



ну больше возможностей всё-таки у ассемблера, и код компактнее и прямое использование инструкций процессора и ....
только если программка более-менеее серьезная, то на ассемблере это выливается в пару тысяч строк кода против двух сотен Сишных - и сам черт ногу сломит (скомпилированный сишный код будет еще больше, но в нем разбираться и не надо).
 
 Top
Vladimir72 Post Id



Великий стратег


Сообщений всего: 193
Дата рег-ции: Май 2012  



Predator все правильно, ассемблер язык сложный, и если кому-то захочется по дрыгать ножкой микроконтроллера, то Си самый раз. Представим мышцы человека, на ассемблере нужно прописать как работает каждое мышечное волокно, а их тысячи. На Си пишем как работает каждая группа мышц, куда короче. Конечно знать ассемблер круто ближе к машине.
 
 Top
maratino Post Id



Рядовой


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



Vladimir72 скажи пожалуйста. в баском авр реально реализавать такой трюк. два вывода рабтотают автономно и в то же время, паралельно? то есть, один св-диод быстро мигает, а другой в то же время, плавно мерцает
 
 Top
Vladimir72 Post Id



Великий стратег


Сообщений всего: 193
Дата рег-ции: Май 2012  



maratino c баском не работал не подскажу.
 
 Top
elmot Post Id



Гуру


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



Реально, конечно. Надо голову напрячь и все будет
 
 Top
Иван_Жихарев Post Id



Майор


Сообщений всего: 62
Дата рег-ции: Май 2012  



CODE:
#include <tiny2313a.h>
#include <delay.h>
int i;
int a;
int b;
// Declare your global variables here

void main(void)
{
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

i=0;
a=0;

while(1){
b=202;

for (i=0;i<100;)
{
PORTB.0 =1;
delay_ms(a);
PORTB.0 = 0;
b=b-2;
delay_ms(b);
a=a+2;
i++;
};

PORTB.0=0;
i=0;
b=0;
a=100;
for (i=0;i<100;)
{
PORTB.0 =1;
delay_ms(a);
PORTB.0 = 0;
b=b+1;
delay_ms(b);
a=a-1;
i++;
};

PORTB.0=0;
i=0;
a=0;
delay_ms(100);
}
}


Вот мой пример кода в Code Vision AVR
(если ещё кому-то нужен Улыбка )
 
 Top
Страниц (4): « 1 2 [3] 4 »
« Программирование микроконтроллеров »


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





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