Страница 2 из 3

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 19:56:26
mixon46
нифига не понятно(((

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:13:39
mixon46
так задаю конкретные вопросы .
1. пик контроллеры перепрошиваются ли если не правильный код программы вшил?
2.есть ли программа для написания программы для пик с русским интерфейсом?
3. дайте что нибудь почитать именно про среду программирования для пик.

понимаете никак не могу разобраться что к чему.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:18:54
ploop
1. Неправильную программу не сможет обработать компилятор, т.е. зашивать будет нечего. Всё остальное - правильная программа.
2. Без английского с МК связываться не стоит, т.к. даташиты должны быть всегда перед глазами.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:21:26
mixon46
в смысле если я написал программу. потом скомпилировал ее. прошил пик а он работает не так как я ожидал. ну допустим по неопытности. он может быть перепрошит на другую исправленную программу?

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:24:36
mixon46
мне кстате давали почитать электронную книгу про программирование. ну понял я это как то смутно. можно сказать совсем не понял. знаю уже нормально. не охота останавливаться на достигнутом. хочется написать свою программу. записать ее в пик и потом продемонстрировать что получится. терпение вроде пока есть. ну оно скоро кончится. а если оно кончится то забухаю((( потом опять буду все вспоминать

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:50:58
Ser60

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 20:59:58
mixon46
вот мужики картинку закинул. я хочу написать программу для перебора цифр на семисигментном индикаторе от 0 до 9. подскажите как? дайте текст программы что бы я хоть что то понял

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:02:03
ploop
Индикатор один, так что общий не обязательно на МК заводить.
На AVR показал бы, с пиками не знаком...

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:08:30
TripleKill
1. пик контроллеры перепрошиваются ли если не правильный код программы вшил?
Вполне. Уже много-много раз перепрошивал 18F452 и 18F4455, всё путём.
2.есть ли программа для написания программы для пик с русским интерфейсом?
Этого не знаю, не искал. Но даже если и есть, русский интерфейс вряд ли будет сильно полезен. В самой среде для повседневной деятельности используются всего несколько кнопок и менюшек. Код всё равно придётся писать на английском.
По вопросу 3 вам уже написали.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:16:22
mixon46
ладненько. кто может мне дать ту программулину что я прошу? просто хочется почитать и понять эти коды. или может книга есть где каждый код по русски потом объяснен. что бы мне лишь бы было понятно как. остальное как нибудь додумаю. одну весчь хочу сделать. ну что бы я ее сам сделал. сам программу написал. сам устройство собрал. хочется все таки побыть разработчиком хоть каким то и доказать самому себе что я что то умею.



кстате может все таки не перепрошивали а просто занимали пустое место памяти в контролеере или нет. я дуд дубом если что по этому делу

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:24:50
otest
я хочу написать программу для перебора цифр на семисигментном индикаторе от 0 до 9.
Если уже понимаеш, то должен знать что индикатор это набор светодиодов с объединёными анодами или катодами. Здесь уже советовали поморгать одним светодиодом. Постигни это и дальше пойдёш.
Программы для PIC на языке асм. пишутся в MPLAB.
Изучи настройку конфигурации МК.
Собери программатор.
PIC с буквой F имеют флыш перепрограмируемую память с буквой С одноразовые.
Шапку прораммы можеш посмотреть в любом листинге.
Выглядит она так:
1. подгрузка файла "inc"
2. слово конфигурации
3. константы , переменные, флаги
...............
4. ORG 0x00- адрес начала программы
5. настройка прерываний
6. настройка портов и внутренних модулей
7. программа и подпрограммы
8. END - конец программы.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:37:29
mixon46
вот что то уже интересное. спасибо

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:39:15
TripleKill
Вот обвязка, чтоб контроллер заработал.
Изображение

Щас набросаю программу на С, там она куда проще выглядит, чем на асме.
Хотя гуру вам скажут, что изучать начинать надо с асма)

P.S. нанофарады для конденсаторов на схеме - слишком много. Они на самом деле должны быть порядка 20 пФ, исправить забыл.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:47:05
mixon46
а на счет кондеров я знаю. там да 10-20 пф

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 21:54:05
TripleKill

Код: Выделить всё

void main() {

TRISB=0;     //Инициализируем порт В
PORTB=0;

while (1) {      //Бесконечный цикл

PORTB=0x06;      //Для общего анода - 0х09; это код цифры 1
delay_ms(1000);  //Ждём 1 секунду
PORTB=0x5B;      //Для общего анода - 0хA4; цифра 2
delay_ms(1000);
PORTB=0x5B;      //0xB0
delay_ms(1000);
PORTB=0x66;      //0x99
delay_ms(1000);
PORTB=0x6D;      //0x92
delay_ms(1000);
PORTB=0x7D;      //0x82
delay_ms(1000);
PORTB=0x07;      //0xF8
delay_ms(1000);
PORTB=0x7F;      //0x80
delay_ms(1000);
PORTB=0x6F;      //0x90
delay_ms(1000);
PORTB=0x3F;      //0xC0
delay_ms(1000);
}



}
Основной код - для индикатора с общим катодом.
Подключение к сегментам: RB0=a, RB1=b, ... RB7=h. Вроде так. Пробуйте. Хекс в аттаче.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 22:09:08
mixon46
очень интересно. спасибо.

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 22:19:56
TripleKill
Кстати, в коде есть ошибочка. Увидите её, если соберёте и запустите схему. Ну или просто внимательно изучив код)

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 22:22:48
mixon46
дайте мне пожалуйста по этим кодам в этой программе где писали программу название кодов. ну там прибавить на единицу такой код. перейти в нечало другой код. если не затруднит вас. хочу познать программирование

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 22:23:29
mixon46
хорошо

Re: Пишем программу для МикроКонтроллера

Добавлено: Вт апр 03, 2012 22:45:26
TripleKill
Написано в mikroC Pro for PIC. Последнюю версию можно достать на рутрекере.
У меня написано не по принципу "+1", а просто подряд выводит коды цифр. С "+1" получилось бы, если использовать индикаторы со встроенным дешифратором.

void main() { } - главная функция, с неё начинается выполнение программы, даже если она не первой по коду написана. Это общая функция для С, не специфичная для контроллера. В программах на С для компьютера вы тоже её увидите.

TRISB - регистр в контроллере, задающий направление работы ног порта В (ввод или вывод). Если в бите этого регистра записан 0 - нога работает на вывод; если 1, то на ввод. Можно каждый вывод сконфигурировать как нужно. Например, TRISB=0b01101010. RB0, RB2, RB4 и RB7 работают на вывод, остальные - на ввод. Есть конечно и TRISA, для порта А. Вот о таких вещах узнают уже читая даташит.

PORTB - обращение к порту В, собственно данные, выводимые на порт или читаемые с порта.

while () {} - цикл с предусловием, тоже не специфичен для контроллера, имеется во всех языках высокого уровня.

delay_ms() - программная задержка в миллисекундах. Тут сишный компилятор делает за вас грязную работу по расчёту тактов контроллера. В ассемблере вам нужно рассчитывать это дело самостоятельно и мутить вложенные циклы.

P.S. Могу здесь писать, если модераторы не сочтут нужным забанить меня за такое разжёвывание) Если скажут, что так нельзя, пишите в личку, по почте свяжемся.