Пишем программу для МикроКонтроллера
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
нифига не понятно(((
- Реклама
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
так задаю конкретные вопросы .
1. пик контроллеры перепрошиваются ли если не правильный код программы вшил?
2.есть ли программа для написания программы для пик с русским интерфейсом?
3. дайте что нибудь почитать именно про среду программирования для пик.
понимаете никак не могу разобраться что к чему.
1. пик контроллеры перепрошиваются ли если не правильный код программы вшил?
2.есть ли программа для написания программы для пик с русским интерфейсом?
3. дайте что нибудь почитать именно про среду программирования для пик.
понимаете никак не могу разобраться что к чему.
Re: Пишем программу для МикроКонтроллера
1. Неправильную программу не сможет обработать компилятор, т.е. зашивать будет нечего. Всё остальное - правильная программа.
2. Без английского с МК связываться не стоит, т.к. даташиты должны быть всегда перед глазами.
2. Без английского с МК связываться не стоит, т.к. даташиты должны быть всегда перед глазами.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
в смысле если я написал программу. потом скомпилировал ее. прошил пик а он работает не так как я ожидал. ну допустим по неопытности. он может быть перепрошит на другую исправленную программу?
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
мне кстате давали почитать электронную книгу про программирование. ну понял я это как то смутно. можно сказать совсем не понял. знаю уже нормально. не охота останавливаться на достигнутом. хочется написать свою программу. записать ее в пик и потом продемонстрировать что получится. терпение вроде пока есть. ну оно скоро кончится. а если оно кончится то забухаю((( потом опять буду все вспоминать
- Реклама
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
вот мужики картинку закинул. я хочу написать программу для перебора цифр на семисигментном индикаторе от 0 до 9. подскажите как? дайте текст программы что бы я хоть что то понял
- Вложения
-
- 3535.JPG
- (21.23 КБ) 620 скачиваний
Re: Пишем программу для МикроКонтроллера
Индикатор один, так что общий не обязательно на МК заводить.
На AVR показал бы, с пиками не знаком...
На AVR показал бы, с пиками не знаком...
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Пишем программу для МикроКонтроллера
Вполне. Уже много-много раз перепрошивал 18F452 и 18F4455, всё путём.1. пик контроллеры перепрошиваются ли если не правильный код программы вшил?
Этого не знаю, не искал. Но даже если и есть, русский интерфейс вряд ли будет сильно полезен. В самой среде для повседневной деятельности используются всего несколько кнопок и менюшек. Код всё равно придётся писать на английском.2.есть ли программа для написания программы для пик с русским интерфейсом?
По вопросу 3 вам уже написали.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
ладненько. кто может мне дать ту программулину что я прошу? просто хочется почитать и понять эти коды. или может книга есть где каждый код по русски потом объяснен. что бы мне лишь бы было понятно как. остальное как нибудь додумаю. одну весчь хочу сделать. ну что бы я ее сам сделал. сам программу написал. сам устройство собрал. хочется все таки побыть разработчиком хоть каким то и доказать самому себе что я что то умею.
кстате может все таки не перепрошивали а просто занимали пустое место памяти в контролеере или нет. я дуд дубом если что по этому делу
кстате может все таки не перепрошивали а просто занимали пустое место памяти в контролеере или нет. я дуд дубом если что по этому делу
Re: Пишем программу для МикроКонтроллера
Если уже понимаеш, то должен знать что индикатор это набор светодиодов с объединёными анодами или катодами. Здесь уже советовали поморгать одним светодиодом. Постигни это и дальше пойдёш.я хочу написать программу для перебора цифр на семисигментном индикаторе от 0 до 9.
Программы для PIC на языке асм. пишутся в MPLAB.
Изучи настройку конфигурации МК.
Собери программатор.
PIC с буквой F имеют флыш перепрограмируемую память с буквой С одноразовые.
Шапку прораммы можеш посмотреть в любом листинге.
Выглядит она так:
1. подгрузка файла "inc"
2. слово конфигурации
3. константы , переменные, флаги
...............
4. ORG 0x00- адрес начала программы
5. настройка прерываний
6. настройка портов и внутренних модулей
7. программа и подпрограммы
8. END - конец программы.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
вот что то уже интересное. спасибо
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Пишем программу для МикроКонтроллера
Вот обвязка, чтоб контроллер заработал.

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

Щас набросаю программу на С, там она куда проще выглядит, чем на асме.
Хотя гуру вам скажут, что изучать начинать надо с асма)
P.S. нанофарады для конденсаторов на схеме - слишком много. Они на самом деле должны быть порядка 20 пФ, исправить забыл.
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
а на счет кондеров я знаю. там да 10-20 пф
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Пишем программу для МикроКонтроллера
Код: Выделить всё
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. Вроде так. Пробуйте. Хекс в аттаче.
- Вложения
-
- MyProject.zip
- (469 байт) 201 скачивание
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
очень интересно. спасибо.
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Пишем программу для МикроКонтроллера
Кстати, в коде есть ошибочка. Увидите её, если соберёте и запустите схему. Ну или просто внимательно изучив код)
- mixon46
- Говорящий с текстолитом
- Сообщения: 1644
- Зарегистрирован: Сб фев 18, 2012 15:42:29
- Откуда: Курск
Re: Пишем программу для МикроКонтроллера
дайте мне пожалуйста по этим кодам в этой программе где писали программу название кодов. ну там прибавить на единицу такой код. перейти в нечало другой код. если не затруднит вас. хочу познать программирование
-
TripleKill
- Вымогатель припоя
- Сообщения: 671
- Зарегистрирован: Вт июн 29, 2010 12:31:49
Re: Пишем программу для МикроКонтроллера
Написано в mikroC Pro for PIC. Последнюю версию можно достать на рутрекере.
У меня написано не по принципу "+1", а просто подряд выводит коды цифр. С "+1" получилось бы, если использовать индикаторы со встроенным дешифратором.
void main() { } - главная функция, с неё начинается выполнение программы, даже если она не первой по коду написана. Это общая функция для С, не специфичная для контроллера. В программах на С для компьютера вы тоже её увидите.
TRISB - регистр в контроллере, задающий направление работы ног порта В (ввод или вывод). Если в бите этого регистра записан 0 - нога работает на вывод; если 1, то на ввод. Можно каждый вывод сконфигурировать как нужно. Например, TRISB=0b01101010. RB0, RB2, RB4 и RB7 работают на вывод, остальные - на ввод. Есть конечно и TRISA, для порта А. Вот о таких вещах узнают уже читая даташит.
PORTB - обращение к порту В, собственно данные, выводимые на порт или читаемые с порта.
while () {} - цикл с предусловием, тоже не специфичен для контроллера, имеется во всех языках высокого уровня.
delay_ms() - программная задержка в миллисекундах. Тут сишный компилятор делает за вас грязную работу по расчёту тактов контроллера. В ассемблере вам нужно рассчитывать это дело самостоятельно и мутить вложенные циклы.
P.S. Могу здесь писать, если модераторы не сочтут нужным забанить меня за такое разжёвывание) Если скажут, что так нельзя, пишите в личку, по почте свяжемся.
У меня написано не по принципу "+1", а просто подряд выводит коды цифр. С "+1" получилось бы, если использовать индикаторы со встроенным дешифратором.
void main() { } - главная функция, с неё начинается выполнение программы, даже если она не первой по коду написана. Это общая функция для С, не специфичная для контроллера. В программах на С для компьютера вы тоже её увидите.
TRISB - регистр в контроллере, задающий направление работы ног порта В (ввод или вывод). Если в бите этого регистра записан 0 - нога работает на вывод; если 1, то на ввод. Можно каждый вывод сконфигурировать как нужно. Например, TRISB=0b01101010. RB0, RB2, RB4 и RB7 работают на вывод, остальные - на ввод. Есть конечно и TRISA, для порта А. Вот о таких вещах узнают уже читая даташит.
PORTB - обращение к порту В, собственно данные, выводимые на порт или читаемые с порта.
while () {} - цикл с предусловием, тоже не специфичен для контроллера, имеется во всех языках высокого уровня.
delay_ms() - программная задержка в миллисекундах. Тут сишный компилятор делает за вас грязную работу по расчёту тактов контроллера. В ассемблере вам нужно рассчитывать это дело самостоятельно и мутить вложенные циклы.
P.S. Могу здесь писать, если модераторы не сочтут нужным забанить меня за такое разжёвывание) Если скажут, что так нельзя, пишите в личку, по почте свяжемся.


