Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Функция для сдвигового регистра

Непрочитано 04.03.2011, 23:18  
neox-neox
Прописка
 
Аватар для neox-neox
 
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
neox-neox на пути к лучшему
Вопрос Функция для сдвигового регистра

привет всем всем всем! пишу функцию для сдвигового регистра и хочу поместить её в папку include codevisiona вот код
-------------------------------сама функция-----------------------------
void hc164_wr(unsigned char mas[],unsigned char mas_index)
{
unsigned char a;
for(a=0;a‹8;a++)
{
PORTB.0=mas[mas_index]&1‹‹a;
PORTB.1=0;
PORTB.1=1;
}
}
--------------------------------------------------------------------------
хочется сделать ее универсальной тоесть менять сами порты и биты портов. как можно эти параметры передовать через функцию
дайте добрый совет пожалуйсто!
Реклама:
neox-neox вне форума  
Непрочитано 04.03.2011, 23:32  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: функция для сдвигового регистра

А зачем передавать функции ? Через #define нельзя что ли .
Или они у вас в программе меняются ?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 05.03.2011, 00:38  
neox-neox
Прописка
 
Аватар для neox-neox
 
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
neox-neox на пути к лучшему
По умолчанию Re: функция для сдвигового регистра

а как definom я ведь это в хедерах пишу. а можно посмотреть ваш вариант кода?
neox-neox вне форума  
Непрочитано 05.03.2011, 01:03  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: функция для сдвигового регистра

Наверно так...
Код:
#define data_hc164    (PORTB.0)   // здесь и определяем порты и биты
#define clk_hc164     (PORTB.1)   //



void hc164_wr(unsigned char mas[], unsigned char mas_index) 
{ 
unsigned char a;
 
   for(a = 0; a ‹ 8; a++) 
    { 
     data_hc164 = mas[mas_index]&1‹‹a; 
     clk_hc164 = 0; 
     clk_hc164 = 1; 
    } 
}

Последний раз редактировалось st_1; 05.03.2011 в 01:05.
st_1 вне форума  
Непрочитано 05.03.2011, 01:05  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: функция для сдвигового регистра

st_1, Угу, это и имелось ввиду...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
neox-neox (06.03.2011)
Непрочитано 05.03.2011, 15:42  
neox-neox
Прописка
 
Аватар для neox-neox
 
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
neox-neox на пути к лучшему
По умолчанию Re: Функция для сдвигового регистра

что-то не получилось, я написал этот пример в библиотеку
#define data_hc164 (PORTB.0)
#define clk_hc164 (PORTB.1) но дело в том что уже в программе порты не меняются и биты тоже.
например
#include ‹mega8.h›
#define data_hc164 PORTD.2
#define clk_hc164 PORTD.3
на эти макросы реакций ноль
А если просто в хедере писать #define data_hc164 и #define clk_hc164
тогда ругается компилятор
neox-neox вне форума  
Непрочитано 05.03.2011, 15:58  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Функция для сдвигового регистра

Сообщение от neox-neox Посмотреть сообщение
#define data_hc164 (PORTB.0)
Здесь явно указан порт и пин, поэтому переназначения не будет.
Сообщение от neox-neox Посмотреть сообщение
А если просто в хедере писать #define data_hc164 и #define clk_hc164
А чему оно #define ?
omercury вне форума  
Сказали "Спасибо" omercury
neox-neox (06.03.2011)
Непрочитано 05.03.2011, 16:11  
neox-neox
Прописка
 
Аватар для neox-neox
 
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
neox-neox на пути к лучшему
По умолчанию Re: Функция для сдвигового регистра

правильно а чему дефие!? так значит универсальной функции для всех мк
не получиться? нужно будет всегда переписывать хедер?
neox-neox вне форума  
Непрочитано 05.03.2011, 16:28  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Функция для сдвигового регистра

Вы чего-то недопонимаете.
Делая изменения только в хедере эту функцию можно прилепить к любому МК.
st_1 вне форума  
Сказали "Спасибо" st_1
neox-neox (06.03.2011)
Непрочитано 05.03.2011, 16:52  
neox-neox
Прописка
 
Аватар для neox-neox
 
Регистрация: 27.10.2010
Сообщений: 133
Сказал спасибо: 24
Сказали Спасибо 53 раз(а) в 41 сообщении(ях)
neox-neox на пути к лучшему
По умолчанию Re: Функция для сдвигового регистра

ну так и я об этом. нужно переделывать чуть-чуть дефины под каждый мк. но по любому всем спасибо!!!
neox-neox вне форума  
 
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Функция для расчета CRC maxNTF Микроконтроллеры, АЦП, память и т.д 3 30.12.2009 10:16
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 08:58.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.