Уроки на Си.
Модератор: koolhatcker
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Уроки на Си.
Всем привет. Бродя по просторам интернета надыбал, по моему мнению, полезную веСч . Это архив, причём здоровый, 12 метров. Но в нём всё то, что интересно именно станкостроителям. Это небольшой робот-тележка, и на основе этой игрушки даны примеры программирования меги-8, работы со всякими датчиками, и прочее. Причем начинается с установки VinAVR, AVR Studio, обьясняется как с ними работать. И очень неплохое, на мой взгляд, описание языка Си. Особенно понравилось создание и применение библиотек. Как в делфи, включай в программу и всё. И всё это счастье - по русски .
Скачать файл "microcamp.rar"(12.1 мб)
Скачать файл "microcamp.rar"(12.1 мб)
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Есть книга "Программирование на языке C для AVR и PIC микроконтроллеров", могу залить. И есть диск к ней, там в книге есть его оглавление.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Гы. У меня практически слово в слово получилось:).Посмотреть PIC на СИ примеры
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
Вот тут Скачать файл "prog_avr_pic.rar"(9.1 мб)
А по диску... Смотри оглавление в книге, и что интересует выложу.
А по диску... Смотри оглавление в книге, и что интересует выложу.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Выложил пока сюда: http://it-en.ru/cnc/doc/1.html
Стиль изложения конечно же оставляет желать лучшего, но сразу всё нормально написать - времени столько нет. Поэтому смотрите, если увидите ошибки или что-то будет непонятно, то говорите и задавайте вопросы, буду исправлять.
Стиль изложения конечно же оставляет желать лучшего, но сразу всё нормально написать - времени столько нет. Поэтому смотрите, если увидите ошибки или что-то будет непонятно, то говорите и задавайте вопросы, буду исправлять.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 7565
- Зарегистрирован: 28 авг 2009, 00:00
- Имя: Юрий
- Откуда: Украина. Межевая.
koolhatcker, а продолжение будет? Было бы здоровски:).
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Хостинг по CNC http://cncfiles.su/
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Время покажет:).
Пока что никакого интереса не вижу. На ошибки не указывают, вопросов не задают...
Зачем же вхолостую разоряться?:)
Пока что никакого интереса не вижу. На ошибки не указывают, вопросов не задают...
Зачем же вхолостую разоряться?:)
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Не понял вопроса. Там все сигналы дискретные - или есть или нет.. О сигнале удержания чего идёт речь?.как можно организовать на каком-нибудь выводе МК дискретный сигнал удержания?
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
koolhatcker писал: Выложил пока сюда: http://it-en.ru/cnc/doc/1.html
... бог с ним со стилем изложения, который в целом очень даже ничего , но вот приводить такой код в пример новичкам явно не стоит, а то еще возьмут это за основу ...
Не я писал - поэтому и править не мне, но хотя-бы isr(void){} переписать надо ....
... бог с ним со стилем изложения, который в целом очень даже ничего , но вот приводить такой код в пример новичкам явно не стоит, а то еще возьмут это за основу ...
Не я писал - поэтому и править не мне, но хотя-бы isr(void){} переписать надо ....
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Прежде чем его снижать, было бы неплохо для начала его задать...Речь о снижении тока в обмотках ШД.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Имхо совсем новички вобще ничего не поймут. А у тех, кто понял, должны были бы возникнуть вопросы.но вот приводить такой код в пример новичкам явно не стоит, а то еще возьмут это за основу ...
Именно этих вопросов я и жду. То есть при публикации всего этого дела я рассчитывал на диалог:). А просто выложить готовый код - неинтересно. Их и так на каждом углу есть...
А можно подробнее? Тут то что не понравилось? Как вызывается или то, что между фигурных скобок?:) Если первое, то непонятно. Если второе, то это всего лишь один из возможных вариантов реализации. Причём вроде как самый кривой. Кривее придумать не получилось . Если делать правильно, то придётся объяснять устройство макроса, делающим возможным непосредственное обращение к биту в порту либо вставку на асме. И то и другое имхо выходит за рамки задуманного текста. Конечно есть и ещё один вариант, но он тоже за рамками:).isr(void){} переписать надо ....
В общем наверное будет лучше не скакать туда-сюда, а начать с самого начала. Но тут опять же возникает вопрос - а нужно ли? Ведь документации, описывающей самые первые шаги - полно. Стоит ли повторяться? Помогите найти ту самую грань, до которой каждый может дойти самостоятельно, а после которой уже потребуются объяснения...
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 614
- Зарегистрирован: 29 авг 2009, 00:00
- Имя: Олег
- Откуда: Край земли (Камчатка)
Опять не понятно, сигнал от шд? Или слежение микроконтроллером? Если второе, то необходимо отслеживать степ, и при отсутствии оных более определенного времени выдавать сигнал на удержание. Как это организовать програмно? Самое простое что приходит на ум, так это перезапускать степом таймер, при отсутствии степ таймер переполняется и по прерыванию уходим на удержание. Как то так...Brazier писал(а):koolhatcker, не нужно задавать ток ШД, нужен сигнал что ШД временно остановился.
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Кому нужен и для чего?не нужно задавать ток ШД, нужен сигнал что ШД временно остановился.
Вполне себе правильный вариант.перезапускать степом таймер
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Подробнее уже некуда. Дальше начинается конкретный код под конкретный МК и компилятор. Начинайте уже думать самостоятельно:). Информации более чем достаточно:). Попробуйте сами сделать, а мы поправим если что не так.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
koolhatcker - не понравилось то, что между {} , а именно как написан обработчик прерывания .... если целью было напихать побольше ненужных инструкций, то задача с успехом выполнена
... ну а если серьезно, то вопрос могут не вызывать только первые 3..4 строчки кода, а все остальное - один большой вопрос.... ну очень много лишнего кода.....
... ну а если серьезно, то вопрос могут не вызывать только первые 3..4 строчки кода, а все остальное - один большой вопрос.... ну очень много лишнего кода.....
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Нет:). Цель была указана в заголовке статьи.если целью было напихать побольше ненужных инструкций
С удовольствием посмотрю на ваш вариант.ну очень много лишнего кода.....
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
... ок
if(INTF){
INTF = 0; // оставим как есть
if (PORTB & 2){ cur_step++;} // Если нужно крутить по часовой - увеличиваем указатель на элемент таблицы(массива)
else { cur_step--; } // ... иначе уменьшаем ...
cur_step&=3; // ... в таблице не более 4 значений, т.е. индекс от 0 до 3
.... итого 3 строчки вместо ......
можно разместить и в 2-х
(PORTB & 2) ? cur_step++ : cur_step-- ;
cur_step&=3;
... а подумав еще - и в одной
ххххххх; - которая сделает то-же самое (и возможно быстрей)
.... хотелось бы увидеть напишет ли кто эту строчку, если нет - ну тогда-уж выложу свой вариант .....
if(INTF){
INTF = 0; // оставим как есть
if (PORTB & 2){ cur_step++;} // Если нужно крутить по часовой - увеличиваем указатель на элемент таблицы(массива)
else { cur_step--; } // ... иначе уменьшаем ...
cur_step&=3; // ... в таблице не более 4 значений, т.е. индекс от 0 до 3
.... итого 3 строчки вместо ......
можно разместить и в 2-х
(PORTB & 2) ? cur_step++ : cur_step-- ;
cur_step&=3;
... а подумав еще - и в одной
ххххххх; - которая сделает то-же самое (и возможно быстрей)
.... хотелось бы увидеть напишет ли кто эту строчку, если нет - ну тогда-уж выложу свой вариант .....
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация:
Ага, а потом объяснять что вся эта писанина означает?:) Цель была не в больше/меньше, а в том, чтобы читающий понял ВЕСЬ АЛГОРИТМ работы. Понимаете? В ваши 2 строчки новичок будет сутки пялиться и ничего не поймёт:)..... итого 3 строчки вместо ......
можно разместить и в 2-х
(PORTB & 2) ? cur_step++ : cur_step-- ;
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
-
- Смотрящий
- Сообщения: 1504
- Зарегистрирован: 30 авг 2009, 00:00
- Откуда: Омск
- Контактная информация: