Уроки на Си.

помощь начинающим осваивать программирование МК (PIC, AVR) на Си.

Модератор: koolhatcker

Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Уроки на Си.

Сообщение Dj_smart »

Всем привет. Бродя по просторам интернета надыбал, по моему мнению, полезную веСч :) . Это архив, причём здоровый, 12 метров. Но в нём всё то, что интересно именно станкостроителям. Это небольшой робот-тележка, и на основе этой игрушки даны примеры программирования меги-8, работы со всякими датчиками, и прочее. Причем начинается с установки VinAVR, AVR Studio, обьясняется как с ними работать. И очень неплохое, на мой взгляд, описание языка Си. Особенно понравилось создание и применение библиотек. Как в делфи, включай в программу и всё. И всё это счастье - по русски :) .
Скачать файл "microcamp.rar"(12.1 мб)
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Тьху ты... :))
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
lobzik
Станкостроитель
Станкостроитель
Сообщения: 73
Зарегистрирован: 14 янв 2010, 01:00
Откуда: Фастов - город контрастов
Контактная информация:

Сообщение lobzik »

Че то не скачивается :no:
ra59m
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 янв 2010, 01:00
Откуда: Моск. обл. Ногинск

Сообщение ra59m »

Посмотреть PIC на СИ примеры

http://www.pcports.ru/articles/pic3.php
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Есть книга "Программирование на языке C для AVR и PIC микроконтроллеров", могу залить. И есть диск к ней, там в книге есть его оглавление.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Посмотреть PIC на СИ примеры
Гы. У меня практически слово в слово получилось:).
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ra59m
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 янв 2010, 01:00
Откуда: Моск. обл. Ногинск

Сообщение ra59m »

Dj_smart
Залей пожалуйста!!!
Программирование на языке C для AVR и PIC микроконтроллеров.
Интересно.
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Вот тут Скачать файл "prog_avr_pic.rar"(9.1 мб)
А по диску... Смотри оглавление в книге, и что интересует выложу.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Выложил пока сюда: http://it-en.ru/cnc/doc/1.html
Стиль изложения конечно же оставляет желать лучшего, но сразу всё нормально написать - времени столько нет. Поэтому смотрите, если увидите ошибки или что-то будет непонятно, то говорите и задавайте вопросы, буду исправлять.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

koolhatcker, а продолжение будет? Было бы здоровски:).
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Время покажет:).
Пока что никакого интереса не вижу. На ошибки не указывают, вопросов не задают...
Зачем же вхолостую разоряться?:)
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
Brazier
Станкостроитель
Станкостроитель
Сообщения: 22
Зарегистрирован: 04 сен 2009, 00:00
Откуда: Самарская область

Сообщение Brazier »

koolhatcker, как можно организовать на каком-нибудь выводе МК дискретный сигнал удержания?
life
Смотрящий
Сообщения: 614
Зарегистрирован: 29 авг 2009, 00:00
Имя: Олег
Откуда: Край земли (Камчатка)

Сообщение life »

Дальше давай! А то назло на астме останусь! :ggg:
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

как можно организовать на каком-нибудь выводе МК дискретный сигнал удержания?
Не понял вопроса. Там все сигналы дискретные - или есть или нет.:). О сигнале удержания чего идёт речь?.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
BMB
Станкостроитель
Станкостроитель
Сообщения: 381
Зарегистрирован: 04 дек 2009, 01:00
Имя: Виктор
Откуда: Московская обл.

Сообщение BMB »

Есть такая книга, можно скачать, можно купить. СД прилагается
Показать/Спрятать
Изображение
Аватара пользователя
Brazier
Станкостроитель
Станкостроитель
Сообщения: 22
Зарегистрирован: 04 сен 2009, 00:00
Откуда: Самарская область

Сообщение Brazier »

koolhatcker писал(а): О сигнале удержания чего идёт речь?.
Речь о снижении тока в обмотках ШД.
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

koolhatcker писал: Выложил пока сюда: http://it-en.ru/cnc/doc/1.html

... бог с ним со стилем изложения, который в целом очень даже ничего :) , но вот приводить такой код в пример новичкам явно не стоит, а то еще возьмут это за основу ...
Не я писал - поэтому и править не мне, но хотя-бы isr(void){} переписать надо ....
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Речь о снижении тока в обмотках ШД.
Прежде чем его снижать, было бы неплохо для начала его задать...:)
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

но вот приводить такой код в пример новичкам явно не стоит, а то еще возьмут это за основу ...
Имхо совсем новички вобще ничего не поймут. А у тех, кто понял, должны были бы возникнуть вопросы.:)
Именно этих вопросов я и жду. То есть при публикации всего этого дела я рассчитывал на диалог:). А просто выложить готовый код - неинтересно. Их и так на каждом углу есть...
isr(void){} переписать надо ....
А можно подробнее? Тут то что не понравилось? Как вызывается или то, что между фигурных скобок?:) Если первое, то непонятно. Если второе, то это всего лишь один из возможных вариантов реализации. Причём вроде как самый кривой. Кривее придумать не получилось :). Если делать правильно, то придётся объяснять устройство макроса, делающим возможным непосредственное обращение к биту в порту либо вставку на асме. И то и другое имхо выходит за рамки задуманного текста. Конечно есть и ещё один вариант, но он тоже за рамками:).
В общем наверное будет лучше не скакать туда-сюда, а начать с самого начала. Но тут опять же возникает вопрос - а нужно ли? Ведь документации, описывающей самые первые шаги - полно. Стоит ли повторяться? Помогите найти ту самую грань, до которой каждый может дойти самостоятельно, а после которой уже потребуются объяснения...:)
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
Brazier
Станкостроитель
Станкостроитель
Сообщения: 22
Зарегистрирован: 04 сен 2009, 00:00
Откуда: Самарская область

Сообщение Brazier »

koolhatcker, не нужно задавать ток ШД, нужен сигнал что ШД временно остановился.
life
Смотрящий
Сообщения: 614
Зарегистрирован: 29 авг 2009, 00:00
Имя: Олег
Откуда: Край земли (Камчатка)

Сообщение life »

Brazier писал(а):koolhatcker, не нужно задавать ток ШД, нужен сигнал что ШД временно остановился.
Опять не понятно, сигнал от шд? Или слежение микроконтроллером? Если второе, то необходимо отслеживать степ, и при отсутствии оных более определенного времени выдавать сигнал на удержание. Как это организовать програмно? Самое простое что приходит на ум, так это перезапускать степом таймер, при отсутствии степ таймер переполняется и по прерыванию уходим на удержание. Как то так...
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

не нужно задавать ток ШД, нужен сигнал что ШД временно остановился.
Кому нужен и для чего?
перезапускать степом таймер
Вполне себе правильный вариант.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
Brazier
Станкостроитель
Станкостроитель
Сообщения: 22
Зарегистрирован: 04 сен 2009, 00:00
Откуда: Самарская область

Сообщение Brazier »

так это перезапускать степом таймер, при отсутствии степ таймер переполняется и по прерыванию уходим на удержание
С этого момента пожалуйста подробней %)
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Подробнее уже некуда. Дальше начинается конкретный код под конкретный МК и компилятор. Начинайте уже думать самостоятельно:). Информации более чем достаточно:). Попробуйте сами сделать, а мы поправим если что не так.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

koolhatcker - не понравилось то, что между {} , а именно как написан обработчик прерывания .... если целью было напихать побольше ненужных инструкций, то задача с успехом выполнена :)
... ну а если серьезно, то вопрос могут не вызывать только первые 3..4 строчки кода, а все остальное - один большой вопрос.... ну очень много лишнего кода.....
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

если целью было напихать побольше ненужных инструкций
Нет:). Цель была указана в заголовке статьи.
ну очень много лишнего кода.....
С удовольствием посмотрю на ваш вариант.:)
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

... ок

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;

... а подумав еще - и в одной :)

ххххххх; - которая сделает то-же самое (и возможно быстрей)
.... хотелось бы увидеть напишет ли кто эту строчку, если нет - ну тогда-уж выложу свой вариант .....
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

.... итого 3 строчки вместо ......
можно разместить и в 2-х
(PORTB & 2) ? cur_step++ : cur_step-- ;
Ага, а потом объяснять что вся эта писанина означает?:) Цель была не в больше/меньше, а в том, чтобы читающий понял ВЕСЬ АЛГОРИТМ работы. Понимаете? В ваши 2 строчки новичок будет сутки пялиться и ничего не поймёт:).
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

... ну не знаю - тут вроде все как "по книжке" :)

... ведь не даром Д. Кнут называет программирование Искусством - фантазию надо развивать сразу, потому что потом будет слишком поздно :ggg: :ggg: :ggg:

PS - теперь даже страшно приводить вариант из одной строки :)
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Просто всему своё время:).
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Ответить