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

 
 
> Классика жанра: Hello World, зажечь/погасить светодиод
D H
сообщение Nov 4 2007, 17:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Ввиду наличия некоторого количества пиков решил сесть за парту. Начало классическое - помигать светодиодом. И как все студенты в ступоре. В протеусе тишина, светодиод погашен. В мплаб заметил, что при первой записи в порт В trisb сбрасывается. Что не так?

#device PIC16F84a
#use delay (clock=20000000)

int main (void)
{
set_tris_B(0xFF);
while(1)
{
output_B(0xFF);
delay_ms(1);
output_B(0);
}
}

PS: компилятор CCS
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Nov 4 2007, 21:39
Сообщение #2


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



1. set_tris_B(0xFF);
Этак Вы настроили порт B на ввод, чтобы настроить на вывод нужно записывать в TRISB нули.
2. После output_B(0); неплохо было бы тоже вставить задержку.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
D H
сообщение Nov 4 2007, 22:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 1-11-06
Пользователь №: 21 847



Цитата(SSerge @ Nov 5 2007, 00:39) *
1. set_tris_B(0xFF);
Этак Вы настроили порт B на ввод, чтобы настроить на вывод нужно записывать в TRISB нули.
2. После output_B(0); неплохо было бы тоже вставить задержку.

1. Опечатка. в trisb, конечно, нули.
2. Симулирую в протеусе. пошаговая симуляция. задержка пофигу. можно и без нее, смысл при пошаговой симуляции не изменится.
В протеусе цеплял светодиод с порта и на +5 и на 0. все одно, не зажигается.
Прийдется на макетку все цеплять и в железе пробовать. Эх, нет в жизни совершенства crying.gif
Go to the top of the page
 
+Quote Post
MaxEngee
сообщение Nov 5 2007, 10:20
Сообщение #4


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

Группа: Свой
Сообщений: 120
Регистрация: 17-03-07
Из: Беларусь, Минск
Пользователь №: 26 249



Попробуй так:

#device PIC16F84a
#use delay (clock=20000000)

int main (void)
{
set_tris_B(0xFF);
output_B(0xFF);
output_B(0); \\ диод катодом на порт и анодом через 1к на +5

while(1)


}
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 00:17
Рейтинг@Mail.ru


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