Радиолоцман Электроника en
расширенный поиск +
  

Обсуждение: Знакомство с микросхемой регистра сдвига 74HC595 - управление 16 светодиодами

Ответ
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
 
Опции темы Поиск в этой теме Оценить тему
Старый 29.04.2011, 13:38 #1
Robot Rlocman
Специалист
 
Аватар для Robot Rlocman
 
Регистрация: 24.11.2007
Сообщений: 2,112
Репутация: 224
Robot Rlocman Специалист Robot Rlocman Специалист Robot Rlocman Специалист
216 0
6 0
По умолчанию Обсуждение: Знакомство с микросхемой регистра сдвига 74HC595 - управление 16 светодиодами

Цитата:
Из этого руководства вы узнаете, как управлять 16 светодиодами используя всего 3 линии управления. Мы осуществим это путем последовательной передачи данных в сдвиговые регистры 74HC595.
Подробнее: Знакомство с микросхемой регистра сдвига 74HC595 - управление 16 светодиодами
Robot Rlocman вне форума  
Оценка 0
Старый 29.04.2011, 13:38 #2
Crazy_Volt19
Новичок
 
Регистрация: 29.04.2011
Сообщений: 4
Репутация: 10
Crazy_Volt19 Новичок
По умолчанию

В програмке на 8 светодиодах есть ошибки... Исправьте, плиз...
Crazy_Volt19 вне форума  
Оценка 0
Компания КОМПЭЛ приглашает вас принять участие в вебинаре 15.07.2020, посвященном новому семейству микроконтроллеров общего назначения – STM32G4. Вебинар рассчитан на технических специалистов и тех, кто знаком с основами цифровой обработки сигналов. Мы разберем алгоритм работы CORDIC, а также рассмотрим пример создания цифрового фильтра на базе FMAC.
Старый 29.04.2011, 19:48 #3
Vadzz
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,163
Записей в дневнике: 19
Репутация: 400
Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист
388 85
0 0
Отправить сообщение для Vadzz с помощью ICQ
По умолчанию

А вы знаете какие именно ошибки в программе. Или пробовали компилировать и получили ошибки при компиляции?
Как таковых ошибок в программе нет, но есть один нюанс, который был задуман автором, с целью использовать данный пример на разных контроллерах. Всего навсего...
Так же один момент - не указана тактовая частота в программе, но я не считаю что это ошибка, а даже наоборот, с этим параметром можно "поиграться" и увидеть результаты и изменения. Единственное, в тексте описания не говорится о том, что мега настроена на работу от внутреннего осциллятора.

У меня скомпилировать получилось, все без ошибок (AVRStudio).
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Vadzz вне форума  
Оценка 0
Видеозапись и материалы вебинара ST о семействе AC/DC регуляторов VIPerPLUS производства компании STMicroelectronics. Инженерами ST было детально рассмотрено новое семейство микросхем VIPerPLUS со встроенным транзистором, их возможности и топологии применения. Продемонстрировано испытание из лаборатории ST в Праге и моделирование в среде E-DesignSuite.
Старый 03.05.2011, 11:59 #4
Crazy_Volt19
Новичок
 
Регистрация: 29.04.2011
Сообщений: 4
Репутация: 10
Crazy_Volt19 Новичок
По умолчанию

Я компелировал в CodeVisionAVR. Ошибки в delay_ms это мелочи, компилятор не понимает _BV() и bit_is_set. Схему тестирую в протеусе. А как в АВРстудио писать на С++, там же вроде ассемблер...
Crazy_Volt19 вне форума  
Оценка 0
Старый 03.05.2011, 12:36 #5
Vadzz
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,163
Записей в дневнике: 19
Репутация: 400
Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист
388 85
0 0
Отправить сообщение для Vadzz с помощью ICQ
По умолчанию

AVRStudio + компилятор WinAVR и пишем на Си в студии.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Vadzz вне форума  
Оценка 0
Старый 03.05.2011, 13:10 #6
Crazy_Volt19
Новичок
 
Регистрация: 29.04.2011
Сообщений: 4
Репутация: 10
Crazy_Volt19 Новичок
По умолчанию

Поставил WinAVR, не понимает delay.h Какая библиотека в аврстудио для паузы?
Crazy_Volt19 вне форума  
Оценка 0
Старый 03.05.2011, 16:24 #7
Vadzz
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,163
Записей в дневнике: 19
Репутация: 400
Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист
388 85
0 0
Отправить сообщение для Vadzz с помощью ICQ
По умолчанию

Используем: include <avr/io.h> и include <util/delay.h>
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Vadzz вне форума  
Оценка 0
Старый 04.05.2011, 06:43 #8
Crazy_Volt19
Новичок
 
Регистрация: 29.04.2011
Сообщений: 4
Репутация: 10
Crazy_Volt19 Новичок
По умолчанию

../new.c:2:26: util/delay.h: No such file or directory
текст программы в АВРСтудио 4:
#include <avr/io.h>
#include <avr/delay.h>
#define DS_PORT PORTC
#define DS_PIN 0
#define ST_CP_PORT PORTC
#define ST_CP_PIN 1
#define SH_CP_PORT PORTC
#define SH_CP_PIN 2
#define DS_low() DS_PORT&=~_BV(DS_PIN)
#define DS_high() DS_PORT|=_BV(DS_PIN)
#define ST_CP_low() ST_CP_PORT&=~_BV(ST_CP_PIN)
#define ST_CP_high() ST_CP_PORT|=_BV(ST_CP_PIN)
#define SH_CP_low() SH_CP_PORT&=~_BV(SH_CP_PIN)
#define SH_CP_high() SH_CP_PORT|=_BV(SH_CP_PIN)
//Define functions
//======================
int i;
void ioinit(void);
void output_led_state(unsigned char __led_state);
//======================
void ioinit (void)
{
DDRC = 0b00000111; //1 = output, 0 = input
PORTC = 0b00000000;
}
void output_led_state(unsigned char __led_state)
{
SH_CP_low();
ST_CP_low();
for (i=0;i<8;i++)
{
if (bit_is_set(__led_state, i))
DS_high();
else
DS_low();
SH_CP_high();
SH_CP_low();
}
ST_CP_high();
}
int main (void)
{
ioinit(); //Setup IO pins and defaults
while(1)
{
for (i=7; i>0; i--)
{
output_led_state(_BV(i));
_delay_ms(100);
}
for (i=0; i<8; i++)
{
output_led_state(_BV(i));
_delay_ms(100);
}
}
}
Запускаю в протеусе. Один огонек горит =(((

Последний раз редактировалось Crazy_Volt19; 04.05.2011 в 10:11.
Crazy_Volt19 вне форума  
Оценка 0
Старый 10.05.2011, 09:17 #9
Vadzz
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,163
Записей в дневнике: 19
Репутация: 400
Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист Vadzz Специалист
388 85
0 0
Отправить сообщение для Vadzz с помощью ICQ
По умолчанию

Разобрался с регистром или проблемы остались (а то был занят, поэтому не отвечал). Если чего, выложи проект в протеусе, гляну.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Vadzz вне форума  
Оценка 0
Старый 01.05.2020, 18:42 #10
geonov
Новичок
 
Регистрация: 01.05.2020
Сообщений: 7
Репутация: 10
geonov Новичок
0 2
0 0
Thumbs down Вопросец

void output_led_state(unsigned char __led_state)
{
SH_CP_low();
ST_CP_low();

........ т.е. на SH_CP и ST_CP "подается 0", далее по коду:

if (bit_is_set(__led_state, i))
DS_high();

.... т.е. на DS подается единица. Но как тогда эта единица сохраниться в в сдвиговом регистре ?

Для сохранения нулей условия выполняются, цитирую статью: "Когда уровень на выводе 11 (SH_CP, иногда обозначается как SRCLK) переходит из низкого в высокий, значение на выводе DS сохраняется в сдвиговом регистре, при этом данные..."
geonov вне форума  
Оценка 0
Ответ
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Оценка этой теме
Оценка этой теме:
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Часовой пояс GMT +3, время: 01:55.
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Вебинар Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4 15.07.2020
Батарейки FANSO – стабильное напряжение в любом положении
Срезы портала ↓
Рейтинг@Mail.ru