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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
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,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
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
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
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.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
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,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
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, время: 02:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot