Технический форум по робототехнике.
EdGull » 28 июл 2008, 10:23
ага... тото я смотрю что у нас все нормальные коды только на васике достпупны!...
=DeaD= » 28 июл 2008, 10:50
Где это "у нас все нормальные коды только на васике достпупны" ?
EdGull » 28 июл 2008, 11:15
ты не поверишь, в вике
лично выкладывал
=DeaD= » 28 июл 2008, 11:51
1. Это непоказательная выборка, вот если бы у нас 20-30 человек выкладывало независимые друг от друга проекты написанные с нуля и там был бы только васик - вот тогда да, а тут ты создал платформу ты выкладываешь на том языке который знаешь - по моему подтасовка результатов налицо
2. Если ты не ходил по вике за пределы раздела МиниБот, то это ничего еще не значит, позволю себе привести другие коды, которые выложил я
которые не на васике:
[[Библиотека myCV]],
[[Библиотека cvQCodeBeacons]],
[[Библиотека myPolyBool]],
[[Библиотека PolyMap]],
[[Библиотека myBasicGeometry]], это не считая работы других участников в вике и того что куча библиотек уже написана на Си\Си++ только я их сюда не перевыкладываю.
EdGull » 28 июл 2008, 12:14
Ура! Ура! Ура!...
у нас теперь есть библы для работы с видео под МК!!!
Ага!.. Щазаз!!! Нука покажи нормальные коды для роботов под МК.
Добавлено спустя 1 минуту 10 секунд:типа:
вперед
назад
поморгать светиком
попищать динамиком
вот то-то!
Сергей » 28 июл 2008, 13:19
Так, харэ уже. Давайте вы будете спорить о языках в другой ветке. Если не успокоетесь - перетащу в новую ветку, либо сами перетащите. Так будем делать ввводный курс или нет?
EdGull » 28 июл 2008, 13:25
Курс делать нужно однозначно, к гадалке не ходи.
Здесь флудим от безисходности и для поднятия морального духа.
Когда будут нормальные примеры для начинающих весь флуд почистим.
Примеры из васика я здесь привожу специально, что бы было видна конструкция языка которая даже мне понятна.
А уж начинающим и подавно.
Сергей » 28 июл 2008, 13:55
Ну так заведи тему Вводного курса МК на Васике. А примеры в начале уже были. Как только прикратим флуд и почистим все, я начну выкладывать новые примеры.
EdGull » 28 июл 2008, 14:00
Си-шные примеры которые здесь были преведены, они не для начинающих!
Если дальнейшие будут в таком же духе, то они нафиг не нужны.
Я вот до сих пор не осознал всей элегантности вышеприведенных примеров.
Мало того я их смысла не понимаю!
Вводный курс МК на Васике и так уже можно собирать из виковских уроков для минибота. Так что ты от темы не уходи.
Сергей » 28 июл 2008, 14:15
Как это не для начинающих?? А какие примеры для начинающих на Си ты хочешь видеть? Вот залезь в гугл, найди такой пример "для начинающих на МК"
Кирилл » 28 июл 2008, 14:20
Эд, зря ты так. пример простейшей программы моргания светодиодом был представлен и разобраться в нем можно без труда. Другое дело что сишники легких путей не ищут и выложили решения этой же задачи только более изощренным способом, тем самым запутывая людей не знающих Си.
вот код из вики:
- Код: Выделить всё • Развернуть
#include <avr/io.h>
#include <util/delay.h>
#include <inttypes.h>
int main(void)
{
char i;
DDRB = 0xFF;
PORTB = 0x00;
while(1)
{
for(i = 0; i < 100; i++)
_delay_ms(10);
PORTB = 0xFF;
for(i = 0; i < 100; i++)
_delay_ms(10);
PORTB = 0x00;
}
return 0;
}
мне лично, человеку не разу в жизни не написавшему ни одной строчки на Си он понятен, а тебе?
кстати,
Dead, в вики походу ошибка. С сайта Атмела нада наверное скачивать AVR Studio, а не WinAVR.
rig » 28 июл 2008, 14:48
в CVAVR работает
delay_ms(1000) и delay_ms(5000), сам проверял так что можно упростить код, убрав циклы.
Vooon » 28 июл 2008, 15:00
А так не проще ли будет?
- Код: Выделить всё • Развернуть
#include <avr/io.h>
#include <util/delay.h>
#include <inttypes.h>
int main(void)
{
char i;
DDRB = 0xFF;
PORTB = 0x00;
while(1)
{
for(i = 0; i < 100; i++)
_delay_ms(10);
PORTB ^= 0xFF; // побитовое исключающее или, в нашем случае просто инвертирование.
// если непонятно то man xor; google://исключающее или
}
return 0;
}
Добавлено спустя 7 минут 12 секунд:или вот мигалка поинтереснее:
- Код: Выделить всё • Развернуть
#include <avr/io.h>
#include <util/delay.h>
#include <inttypes.h>
int main(void)
{
unsigned char i, mask = 0x5A;
DDRB = 0xFF;
PORTB = 0x00;
while(1)
{
for(i = 0; i < 100; i++)
_delay_ms(10);
mask ^= 0xFF;
PORTB ^= mask;
}
return 0;
}
Сергей » 28 июл 2008, 15:02
rig писал(а):в CVAVR работает
delay_ms(1000) и delay_ms(5000), сам проверял так что можно упростить код, убрав циклы.
Давайте не будем писать в CV? там библиотеки хорошие, но всетакие не айс. Я предлагаю писать в WInAVR, - там _delay_ms в среднем не может быть больше 200 в зависимости от кварца.
Добавлено спустя 1 минуту 22 секунды:Vooon, ща ты будешь новичкам объяснять что такое маска и битовые операциия))) Тут же у нас еще курс Си)))
blindman » 28 июл 2008, 15:04
Vooon писал(а):А так не проще ли будет?
.......
Проще - да. Понятнее - однозначно нет. Понятнее всего наверно так:
- Код: Выделить всё • Развернуть
#include "library.h"
int main(void)
{
bit_set(DDRB, 1);
while (1) {
bit_set(PORTB, 1);
wait_ms(300);
bit_clear(PORTB, 1);
wait_ms(300);
}
}
Может имеет смысл сначала сделать простую библиотеку базовых функций, и уже на ее основе делать курс или как-там-его-назвать?
Вместо
- Код: Выделить всё • Развернуть
PORTB |= (1 << 6);
будет
- Код: Выделить всё • Развернуть
bit_set(PORTB, 6);
Вместо
- Код: Выделить всё • Развернуть
PORTB &= ~(1 << 6);
будет
- Код: Выделить всё • Развернуть
bit_clear(PORTB, 6);
Вместо
- Код: Выделить всё • Развернуть
PORTB ^= (1 << 6);
будет
- Код: Выделить всё • Развернуть
bit_invert(PORTB, 6);
Диапазон аргументов к функциям/макросам задержек расширить, другие базовые вещи сделать.