реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Прошу помощи в написании первой программы
AlxX
сообщение Aug 18 2012, 03:38
Сообщение #1





Группа: Новичок
Сообщений: 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);
Подскажите как быть?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Aug 18 2012, 03:56
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(AlxX @ Aug 18 2012, 06:38) *
В результате мигают оба светодиода, как будто я написал PORTA = 1(PORTA=0);
Подскажите как быть?

В приведенном вами фрагменте ошибка: светодиоды никак не могут мигать. Ну и аноды нужно к разным резисторам подключить ...
Go to the top of the page
 
+Quote Post
zombi
сообщение Aug 18 2012, 16:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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

В результате мигают оба светодиода


Судя по программе состояние ног порта А вообще не меняется, как может что то мигать?

Go to the top of the page
 
+Quote Post
AlxX
сообщение Aug 19 2012, 16:04
Сообщение #4





Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Aug 19 2012, 17:03
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(AlxX @ Aug 19 2012, 19:04) *
Код
#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


А Вы на ножках тестером посмотрите - дергаются ли PORTA.0 & PORTA.1
И фус-биты проверьте - особенно постоянное включение wdt (если он есть в 8535). На какой частоте работает процессор, правильно ли она указана в проекте. Так в коде ошибок не наблюдается. Может не работать если постоянно ресетится изза сторожевого таймера или косяков в подключении светодиодов.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Aug 19 2012, 21:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(AlxX @ Aug 18 2012, 06:38) *
Два светодиода подключены катодом к МК, анодом к одному и тому же резистору на 1 килоом.

Я всегда говорил, что только те, кто застал ламповую технику, никогда не путают анод и катод. Потому как если хоть раз в жизни довелось ткнуть пальцем в анодное напряжение - то на всю жизнь запомниться, что анод это ПЛЮС (ну да, сейчас этот плюс уже можно маленькими буквами писать, он маленький, но все же плюс sm.gif
Go to the top of the page
 
+Quote Post
Семин
сообщение Aug 20 2012, 08:25
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 27-04-12
Пользователь №: 71 608



Сторона диода которая похожа на букву К - есть КАТОД.
Диод открывается, проводит ток, а светодиод при этом ещё
и светится, когда на него подаётся минус.
Go to the top of the page
 
+Quote Post
zombi
сообщение Aug 20 2012, 09:20
Сообщение #8


Гуру
******

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



to AlxX
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AlxX
сообщение Aug 21 2012, 13:00
Сообщение #9





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



Цитата(zombi @ Aug 20 2012, 12:20) *
to AlxX


Абсолютно верно - у меня наоборот светодиоды подключены (+ - выход мк, - - через резистор на GND ).

Сторожевой таймер в настройках проекта отключен. В настройках указана частота 1 мегагерц, доп. кварцев не подключено. Сигнал на обеих ногах появляется одновременно (на всех остальных сигнала нет).
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 21 2012, 13:20
Сообщение #10


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Думаю, что надо разориться и купить ... еще один резистор на 1 ком sm.gif. Как только светодиоды разведут по отдельным резисторам, всё само наладится. А сейчас, скорее всего, по отдельности они горят, а вместе гаснут (резко ослабляют свое свечение) из-за увеличения падения напряжения на единственном сопротивлении.
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Aug 21 2012, 14:48
Сообщение #11


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Скорей всего у Вас сопля между ногами wink.gif
ЗЫ. т.е не у Вас, а у процессора.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Aug 21 2012, 16:30
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Чем сидеть в онлайне на форуме и ждать подсказок, лучше давно бы уже сами попробовали поморгать ногами в противофазе, оторвать светодиоды и посмотреть напряжение на выводах, просто выставить противофазные напряжения без моргания... Дел на 5 минут, баг ловится сразу.
Go to the top of the page
 
+Quote Post
AlxX
сообщение Aug 22 2012, 05:27
Сообщение #13





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



В общем проблема решена. Я как человек привыкший верить конструкторам и заставший еще живые радиодетали СССР по старой памяти спаял "широкую" ногу к выводу МК, а "узкую" через сопротивление на землю. Но китайская промышленность, как оказалось, думает иначе! У них на красных светодиодах так и есть, а на желтых и зеленых с точностью до наоборот! В общем перепаял светодиоды и добавил сопротивление и все работает на ура. Всем огромное спасибо.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Aug 22 2012, 06:39
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(AlxX @ Aug 22 2012, 08:27) *
Я как человек привыкший верить конструкторам и заставший еще живые радиодетали СССР

Как человек, повидавший настолько многое, могли бы по крайней мере разобраться и правильно описать причину неработоспособности. Так как Вы последовательно утверждали:
1) светодиоды мигают одновременно
2) светодиоды припаяны анодом к земле

Одно из этих утверждений явно ложное.

На будущее: попробуйте корректно и правильно описать проблему. Часто хорошо поставленный вопрос не нуждается в ответе. Задающий, прочитав такой вопрос, сам находит ответ sm.gif
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Aug 22 2012, 07:50
Сообщение #15


Профессионал
*****

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



Цитата
"широкую" ногу к выводу МК, а "узкую" через сопротивление на землю.
...
на красных светодиодах так и есть, а на желтых и зеленых с точностью до наоборот!


Нарисуйте, пожалуйста, схему, как такая конструкция в принципе работает. С указанием направления токов и значениями напряжений в каждой точке. Ну хоть примерно, умозрительно.

UPDATE. Пардон, сообразил. Если самому додумать, что один светодиод зелёный ("неправильный"), второй красный, то логика какая-то прослеживается. Я с чего-то решил, что они одинаковые.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016