Вопросы новичков по Си

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

Модератор: koolhatcker

tim
SuperTrudogolik
Сообщения: 924
Зарегистрирован: 24 окт 2009, 00:00
Откуда: Узбекистан, город Ахангаран

Сообщение tim »

программирую контроллеры авр в AVR Studio на асемблере
(пока пишу только небольшие программки) .
у меня вопрос легко ли будет перейти с асемблера на си и облегчит ли язык си написание программ или лучше продолжать программировать на асемблере.
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

tim, вопрос риторический :) .
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

легко ли будет перейти с асемблера на си
Скорее всего это индивидуально.
облегчит ли язык си написание программ
По крайней мере ускорит в разы - точно.
или лучше продолжать программировать на асемблере.
Если достаточно изучили архитектуру проца и наступило понимание, как именно производятся вычисления, то уже можно переходить.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
tim
SuperTrudogolik
Сообщения: 924
Зарегистрирован: 24 окт 2009, 00:00
Откуда: Узбекистан, город Ахангаран

Сообщение tim »

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

Сообщение koolhatcker »

Для начала скачайте и почитайте вот это: http://readrus.ru/savered.php?file=93572
Там очень наглядно и доступно описаны операторы языка Си. Это поможет вам понять тексты чужих программ и научиться писать свои. В отношении программ - http://www.cncmasterkit.ru/modules.php? ... forum&f=11 читали?
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
tim
SuperTrudogolik
Сообщения: 924
Зарегистрирован: 24 окт 2009, 00:00
Откуда: Узбекистан, город Ахангаран

Сообщение tim »

koolhatcker писал(а):Для начала скачайте и почитайте вот это: http://readrus.ru/savered.php?file=93572
Там очень наглядно и доступно описаны операторы языка Си. Это поможет вам понять тексты чужих программ и научиться писать свои. В отношении программ - http://www.cncmasterkit.ru/modules.php? ... forum&f=11 читали?
спасибо за руководство.
я так понял мне нужна программа VinAVR ?
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Вам нужна программа WinAVR.:) Если же она вам покажется сложноватой, то можете попробовать платные компиляторы для AVR - например CodeVision или IAR.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
un7prf
Наблюдающий
Сообщения: 3
Зарегистрирован: 31 окт 2009, 01:00

Сообщение un7prf »

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

Сообщение koolhatcker »

Асмовые вставки в Си - обычное явление. Не понимаю, что тут печального. Печально - это когда 1000 строк на ассемблере написал 3 года назад, а сейчас что-то изменить потребовалось. Вот это действительно печально. Лично я кроме "nop" никаких других вставок не делаю и ничуть от этого не страдаю. Если не успеваю по времени - то сначала думаю над изменением алгоритма. Если это не помогает, то просто беру другой МК. Привычка пытаться решать все возможные задачи при помощи одного и того же МК - плохая привычка имхо. Не зря производители выпускают такой широкий ассортимент кристаллов с различной периферией - практически всегда можно подобрать наиболее подходящий под конкретную задачу.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ra59m
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 янв 2010, 01:00
Откуда: Моск. обл. Ногинск

Сообщение ra59m »

Вопрос существует язык СИ есть C++Builder 6
есть С+ есть С#
поясните разницу для начинающего
может лучше на Delphi7 и подойдет ли
она для этого и какой язык проще и лучше
подходит для программирования PIC
и AVR
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

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

Сообщение ra59m »

Установил C++Builder 6 подойдет?
Можно начинать знакомство, в ней и для PIC
и AVR среда подходящая?
Подскажите какие книги поискоть
а может и мультимидийное обучение
где есть.
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Установил C++Builder 6 подойдет?
Нет. Удаляйте:). Это для ПК, а не для МК.
Для PIC рекомендую компилятор HT-PICC и оболочку MPLAB IDE от Microchip. Для AVR рекомендую AVR-GCC. Хотя для начала лучше бы выбрать что-то одно.
Что касается документации - рекомендую "Руководство полного идиота по программированию (на языке Си)".
Автор - Андрей Богатырев. Данный документ без проблем находится в сети. Там всё описано достаточно подробно и доходчиво, в стиле доступном для понимания любому, кто мало-мальски знаком с программированием. Мультимедийного обучения не встречал.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

... в любом случае списывать ассемблер не стоит - на Сях конечно-же быстрее, но лучше знать ассемблер ни кому не мешало. После изучения 2-3 ассемблеров для различных камней некая "каша в голове" от изобилия мнемоник присутствует но это не смертельно....
тем более если компилятор поддерживает макросредства - программировать становится куда легче......
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Кто верит в Магомета, кто в Аллаха, кто в Иисуса...
Завязывайте эти разборы. Всёравно каждый останется при своём мнении:). Это я о том что лучше.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
ShCoder
Станкостроитель
Станкостроитель
Сообщения: 37
Зарегистрирован: 11 янв 2010, 01:00

Сообщение ShCoder »

это не разборы - и что лучше каждый сам решит вот ссылка на сборник кросс-ассемблеров .... ежели-бы под все это были бы С-компиляторы ..... а так гдеж их взять....... :ggg:
http://john.ccac.rwth-aachen.de:8000/as/download.html
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »


!

ShCoder, эта тема для вопросов по Си, а не для обсуждения того, что лучше/хуже.

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

Сообщение ra59m »

Cаму прогу СИ и обучение найти бы для начинающего ,а то в магазинах
подмосковья одни игры да фильмы,
на тему вышел супер американец и завалил
больше чем во вторую мировую или секс
Спросишь у продавца для программирования
на СИ на BASIC смотрят
как на дауна и в Митино в Москву посылают
в лучшем случае.
Осветил бы кто по проще да по порядку на примерах
взяли PIC подклучили программатор установили драйвера
запустили прогу и так до конечного этапа шаг за шагом
И начинающий смог дома весь поцесс понять и повторить,
в Google все есть по кусочкам, а собрать в едино
без опыта начинающему ох как трудно и у многих
на этом и всё -топтаниеина на месте.
ra59m
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 янв 2010, 01:00
Откуда: Моск. обл. Ногинск

Сообщение ra59m »

Вот нашол полезное по си для PIC

Скачать файл "pic_na_SI.rar"(3.9 мб)
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

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

Сообщение ra59m »

Не зря интересно выложи.
Там datasheet на рус по PIC16F877
и как его прошить на СИ
http://www.pcports.ru/articles/pic3.php
Аватара пользователя
vzgherea
Станкостроитель
Станкостроитель
Сообщения: 82
Зарегистрирован: 07 дек 2009, 01:00

Сообщение vzgherea »

Как при помощи таймера организовать периодическое изменение уровня на одной из ножек порта мк, с низкой частотой (1Гц, например)? Хочу помигать диодом не используя delay_ms.
Как вариант, думаю запустить таймер с самым медленным тиканьем относительно частоты работы мк, при переполнении вызывать прерывание и в обработчике инкрементировать значение глобальной переменной пока не пройдёт нужный период(надо будет посчитать кол-во переполнений таймера в нужном интервале времени). Как только переменная получит нужное значение, изменяю сигнал на ноге мк и обнуляю глобальную переменную.

Сработает?

Другие варианты есть? Не очень нравится ипользование глобальной переменной.
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Сработает?
Да, конечно.
Не очень нравится ипользование глобальной переменной.
Чем именно? Ничего страшного в этом нет.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
vzgherea
Станкостроитель
Станкостроитель
Сообщения: 82
Зарегистрирован: 07 дек 2009, 01:00

Сообщение vzgherea »

Ещё вопросец - как delay_ms(x) и delay_us(x) отрабатывают нужные паузы при разной частоте мк? Думаю, в них считывается частота МК и потом делается пауза на нужное кол-во тактов. Так ли это?
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

Так ли это?
Именно так. Поэтому для корректной работы этих функций в программе нужно указывать значение тактовой частоты МК.
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
vzgherea
Станкостроитель
Станкостроитель
Сообщения: 82
Зарегистрирован: 07 дек 2009, 01:00

Сообщение vzgherea »

Возможно ли переопределить направление (ввод/вывод) для ножки микроконтроллера во время выполнения программы?

Хочу использовать такой приём для открытия п-канального полевика (надо коммутировать именно +) - исток на питании и соеденён резистором 1к с затвором, вывод мк соеденён с затвором, к стоку подключена нагрузка. Изначально вывод мк находится в Z-состоянии, напряжение на затворе равно напряжению на истоке, соответственно транзистор закрыт и на нагрузке напряжения нет. В нужный момент делаем ножку мк выводом и записываем туда 0. На истоке 12в, на затворе 0 - транзистор открывается и через нагрузку бежит ток. Будет работать?
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

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

Сообщение Dj_smart »

Будет работать?
Особенно 12 вольт на ногу контроллера. Работать будет. Но не долго. Где-то 1-2 машинных такта :ggg:
Последний раз редактировалось Dj_smart 25 янв 2010, 23:13, всего редактировалось 1 раз.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
vzgherea
Станкостроитель
Станкостроитель
Сообщения: 82
Зарегистрирован: 07 дек 2009, 01:00

Сообщение vzgherea »

Dj_smart писал(а): Особенно 12 вольт на ногу контроллера. Работать будет. Но не долго. Где-то 1-2 машинных такта :ggg:
Мда, не совсем то, что планировалось :crazy:

А как сделать то, есть идеи? Может тиристор использовать? Хотя его не получится закрыть...
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

А как сделать то, есть идеи?
Конечно:). Ставь 315-й транзистор, с его коллектора на +12 резистор, и с него же куда надо.Получишь 12-ти вольтовый, но ИНВЕРТИРОВАНЫЙ сигнал. Значит его прийдётся проинвертиовать и в МК. Предварительно.
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Ответить