|
Прошу помощи в написании первой программы |
|
|
|
Aug 18 2012, 03:38
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-08-12
Пользователь №: 73 176

|
Здравствуйте. Я начинаю изучать програмирование под МК и у меня не получается корректно написать первую программу. МК, используемый мною, ATmega8535. Из обвязки 2 светодиода на порту A на нулевом и первом соответственно. Схема стаблилизации питания на 78L05. Два светодиода подключены катодом к МК, анодом к одному и тому же резистору на 1 килоом. Вся эта конструкция запитана от кроны.
Пишу программу:
#include <mega8535.h> #include <delay.h>
void main(void){ PORTA=0x00; DDRA=0xFF; while(1){ PORTA.0=1; PORTA.1=0; delay_ms(500); PORTA.0=1; PORTA.1=0; //PORTA.1=1; delay_ms(700); }//while }//main
В результате мигают оба светодиода, как будто я написал PORTA = 1(PORTA=0); Подскажите как быть?
|
|
|
|
|
Aug 18 2012, 16:47
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(AlxX @ Aug 18 2012, 06:38)  Два светодиода подключены катодом к МК, анодом к одному и тому же резистору на 1 килоом. Куда подключён второй вывод резистора? или аноды соединены через резистор??? Нарисуйте схему, напишите как должны мигать светодиоды. Цитата(AlxX @ Aug 18 2012, 06:38)  Код void main(void){ PORTA=0x00; DDRA=0xFF; while(1){ PORTA.0=1; PORTA.1=0; delay_ms(500); PORTA.0=1; PORTA.1=0; //PORTA.1=1; delay_ms(700); }//while }//main В результате мигают оба светодиода Судя по программе состояние ног порта А вообще не меняется, как может что то мигать?
|
|
|
|
|
Aug 19 2012, 16:04
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-08-12
Пользователь №: 73 176

|
Цитата(zombi @ Aug 18 2012, 19:47)  Куда подключён второй вывод резистора? или аноды соединены через резистор???
Нарисуйте схему, напишите как должны мигать светодиоды.
Судя по программе состояние ног порта А вообще не меняется, как может что то мигать? Схема подключения (78L05 убрана).  программа действительно не рабочая, я ошибся, когда добавлял код в 1 пост: Код #include <mega8535.h> #include <delay.h>
void main(void){ PORTA=0x00; DDRA=0xFF; while(1){ PORTA.0=1; PORTA.1=0; delay_ms(500); PORTA.0=0; PORTA.1=1; delay_ms(700); }//while }//main
|
|
|
|
|
Aug 19 2012, 21:10
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(AlxX @ Aug 18 2012, 06:38)  Два светодиода подключены катодом к МК, анодом к одному и тому же резистору на 1 килоом. Я всегда говорил, что только те, кто застал ламповую технику, никогда не путают анод и катод. Потому как если хоть раз в жизни довелось ткнуть пальцем в анодное напряжение - то на всю жизнь запомниться, что анод это ПЛЮС (ну да, сейчас этот плюс уже можно маленькими буквами писать, он маленький, но все же плюс
|
|
|
|
|
Aug 21 2012, 13:00
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-08-12
Пользователь №: 73 176

|
Цитата(zombi @ Aug 20 2012, 12:20)  to AlxX Абсолютно верно - у меня наоборот светодиоды подключены (+ - выход мк, - - через резистор на GND ). Сторожевой таймер в настройках проекта отключен. В настройках указана частота 1 мегагерц, доп. кварцев не подключено. Сигнал на обеих ногах появляется одновременно (на всех остальных сигнала нет).
|
|
|
|
|
Aug 22 2012, 05:27
|
Группа: Новичок
Сообщений: 5
Регистрация: 18-08-12
Пользователь №: 73 176

|
В общем проблема решена. Я как человек привыкший верить конструкторам и заставший еще живые радиодетали СССР по старой памяти спаял "широкую" ногу к выводу МК, а "узкую" через сопротивление на землю. Но китайская промышленность, как оказалось, думает иначе! У них на красных светодиодах так и есть, а на желтых и зеленых с точностью до наоборот! В общем перепаял светодиоды и добавил сопротивление и все работает на ура. Всем огромное спасибо.
|
|
|
|
|
Aug 22 2012, 06:39
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(AlxX @ Aug 22 2012, 08:27)  Я как человек привыкший верить конструкторам и заставший еще живые радиодетали СССР Как человек, повидавший настолько многое, могли бы по крайней мере разобраться и правильно описать причину неработоспособности. Так как Вы последовательно утверждали: 1) светодиоды мигают одновременно 2) светодиоды припаяны анодом к земле Одно из этих утверждений явно ложное. На будущее: попробуйте корректно и правильно описать проблему. Часто хорошо поставленный вопрос не нуждается в ответе. Задающий, прочитав такой вопрос, сам находит ответ
|
|
|
|
|
Aug 22 2012, 07:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата "широкую" ногу к выводу МК, а "узкую" через сопротивление на землю. ... на красных светодиодах так и есть, а на желтых и зеленых с точностью до наоборот! Нарисуйте, пожалуйста, схему, как такая конструкция в принципе работает. С указанием направления токов и значениями напряжений в каждой точке. Ну хоть примерно, умозрительно. UPDATE. Пардон, сообразил. Если самому додумать, что один светодиод зелёный ("неправильный"), второй красный, то логика какая-то прослеживается. Я с чего-то решил, что они одинаковые.
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|