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

 
 
> Прошу помощи в написании первой программы
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
 
Start new topic
Ответов
ilglbv
сообщение Aug 26 2012, 20:21
Сообщение #2





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



Доброго времени суток!
Даже стыдно как то спрашивать) Но все же..
Пытаюсь поиграться с регистом PIN, вроде все варианты перепробывал, но не получается(((

#include <avr/io.h>
#include <util/delay.h>
int main (void)
{ DDRC = 01111111;
PORTC = 10000000;
while (1){
if (PINC0 == 0)
{PORTB |= (1<<5); // включаем
_delay_ms(550); // ждём
PORTB &= ~(1<<5); // выключаем
_delay_ms(550); // ждём
}

}
}

В двоичном пишу потому что стал думать может в хексе запутался((
Please, Help!
Avr Studio 6, Proteus 7.7
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Aug 26 2012, 20:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ilglbv @ Aug 26 2012, 23:21) *
Пытаюсь поиграться с регистом PIN, вроде все варианты перепробывал, но не получается(((

Не помешало бы указать тип МК: так как у разных типов разные возможности для "игр" с PINx.
У mega8/16/../128 PINx - только для чтения состояния порта, а у mega48/88../328 - PINx может быть использован для инвертирования выхода.

Цитата(ilglbv @ Aug 26 2012, 23:21) *
DDRC = 01111111;
PORTC = 10000000;
while (1){
if (PINC0 == 0)
{PORTB |= (1<<5);

В двоичном пишу потому что стал думать может в хексе запутался((

DDRC = 01111111; - настройка порта С на выход?
Тогда PORTB |= (1<<5) зачем? Подключить подтягивающие резисторы в порте B?
DDRB = 0xFF; было бы логичней.
И вообще кстати непонятна цель вашей программы- вывести на PB5 "1" если на PC0 - высокий уровень? Или что-то другое?

Цитата(ilglbv @ Aug 26 2012, 23:21) *
if (PINC0 == 0)

PINC0 это вот что:
#define PINC0 0
то есть ваш код
if (0 == 0)
.
Лучше так:
Код
if ((PINC&(1<<0))==0) { // если PC0 == 0
//....
}



Цитата(ilglbv @ Aug 26 2012, 23:21) *
В двоичном пишу потому что стал думать может в хексе запутался((

Кому как, в bin проще запутаться - букв много, в hex-е меньше.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AlxX   Прошу помощи в написании первой программы   Aug 18 2012, 03:38
- - kovigor   Цитата(AlxX @ Aug 18 2012, 06:38) В резул...   Aug 18 2012, 03:56
- - zombi   Цитата(AlxX @ Aug 18 2012, 06:38) Два све...   Aug 18 2012, 16:47
|- - AlxX   Цитата(zombi @ Aug 18 2012, 19:47) Куда п...   Aug 19 2012, 16:04
|- - mempfis_   Цитата(AlxX @ Aug 19 2012, 19:04) Код#inc...   Aug 19 2012, 17:03
- - Ruslan1   Цитата(AlxX @ Aug 18 2012, 06:38) Два све...   Aug 19 2012, 21:10
- - Семин   Сторона диода которая похожа на букву К - есть КАТ...   Aug 20 2012, 08:25
- - zombi   to AlxX   Aug 20 2012, 09:20
|- - AlxX   Цитата(zombi @ Aug 20 2012, 12:20) to Alx...   Aug 21 2012, 13:00
- - Xenia   Думаю, что надо разориться и купить ... еще один р...   Aug 21 2012, 13:20
- - Alexashka   Скорей всего у Вас сопля между ногами ЗЫ. т.е ...   Aug 21 2012, 14:48
- - _Ivana   Чем сидеть в онлайне на форуме и ждать подсказок, ...   Aug 21 2012, 16:30
- - AlxX   В общем проблема решена. Я как человек привыкший в...   Aug 22 2012, 05:27
|- - Ruslan1   Цитата(AlxX @ Aug 22 2012, 08:27) Я как ч...   Aug 22 2012, 06:39
|- - AlxX   Цитата(Ruslan1 @ Aug 22 2012, 09:39) Как ...   Aug 23 2012, 05:00
- - esaulenka   Цитата"широкую" ногу к выводу МК, а ...   Aug 22 2012, 07:50
- - Plain   Хороший программист в первую очередь хорошо себе к...   Aug 23 2012, 05:29
|- - zombi   Цитата(ilglbv @ Aug 26 2012, 23:21) PORTC...   Aug 26 2012, 21:09
|- - _Артём_   Цитата(zombi @ Aug 27 2012, 00:09) Пишем ...   Aug 26 2012, 21:21
||- - zombi   Цитата(_Артём_ @ Aug 27 2012, 00:21) наве...   Aug 26 2012, 21:28
||- - _Артём_   Цитата(zombi @ Aug 27 2012, 00:28) Дык, в...   Aug 26 2012, 21:32
||- - _Артём_   . стёрто форум глючит - сообщения по 2 раза пишутс...   Aug 26 2012, 21:37
|- - _Артём_   Цитата(zombi @ Aug 27 2012, 00:09) Пишем ...   Aug 26 2012, 21:28
- - ilglbv   Поторопился... "проектик" на Mega8, суть...   Aug 26 2012, 21:35
|- - _Артём_   Цитата(ilglbv @ Aug 27 2012, 00:35) DDRC ...   Aug 26 2012, 22:09
|- - ilglbv   Цитата(_Артём_ @ Aug 27 2012, 02:09) А чт...   Aug 29 2012, 11:48
- - ilglbv   Вот, поправил и все заработало) #include <avr/i...   Aug 26 2012, 21:45


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:50
Рейтинг@Mail.ru


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