Новичок
Регистрация: 01.09.2013
Сообщений: 16
Репутация: 11
![]() |
Есть такая простецкая программа:
Код:
void main() { //Всё цифровое ADCON1 = 0b11111111; TRISDbits.RD1 = 0; TRISDbits.RD2 = 1; while (1) { if (PORTDbits.RD2) { //Зажигаем PORTDbits.RD1 = 1; } else { //Гасим PORTDbits.RD1 = 0; } } } В proteus всё пашет как надо. Прошил МК, и наблюдаю непонятные вещи: Т.е. 1. светодиод на RD1 зажигается не зависимо от того, есть ли сигнал на RD2 2. Он зажигается не при любом напряжении, а только до 4.5 В 3. Почему то не получилось запитать схему от 2х батареек, которые дают 2,6 В (слишком мало что ли?) 4. Почему то не получилось запитать схему от зарядки телефона, которая даёт 5,7 В (слишком много что ли?) Столько всего не понятного на голову свалилось.. Растолкуйте кто нибудь |
||
Оценка
|
Знаток
Регистрация: 01.02.2009
Сообщений: 850
Репутация: 152
![]() ![]() |
Наверное потому, что в программе одна закрывающая скобка лишняя. Как компилятор интерпретирует такую комбинацию не известно.
__________________
Компьютер не подчиняется законам физики. Только в нем глюки возникают из ничего, файлы исчезают в никуда, а объем измеряется в метрах и называется весом. |
||
Оценка
|
Новичок
Регистрация: 12.12.2011
Сообщений: 12
Репутация: 14
![]() |
valerik88,
1. ток через светодиод обязательно надо ограничивать. Поставьте резистор 200-300 ом. Иначе можете попалить и диод и порт МК. 2. От двух батареек работать должно, смотрите на какое напряжение настроен Brown-out Reset. А лучше его совсем отключить. Читайте даташит, раздел "SPECIAL FEATURES OF THE CPU" 3. Питание этого МК - до 5.5В Больше я бы не советовал подавать. 4. Непонятно как воспринимает МК вход, висящий в воздухе. Это КМОП, все таки. Посадите его на землю через резистор. 5. И читайте дальше даташит :-) Там много интересного на тему конфигурации входов/выходов |
||
Оценка
|
Ответ |
Опции темы | Поиск в этой теме |
Оценка этой теме | |
Похожие темы |
|
|
Обратная связь РадиоЛоцман Вверх |