а в чем проблема? SPI, TWI или USART сделают это аппаратно, а программно - при помощи сдвига в цикле.Vergilium писал(а):Подскажите пожалуйста, как передать байт в регистр последовательно, т.е. есть переменная с определенным значением и нужно записать ее в внешний 8ми битный регистр последовательно бит за битом.
WinAvr в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
а вы делайте, как будто работаете не с портом, а с обычной переменной... как в ней отдельный бит изменить? вот точно так же и с портом:Vergilium писал(а):А можно напрямую обратится к определенному выводу парта, например к 6 выводу порта А. Что то вроде этого PORTA.6 не катит в WinAVR. Может какая то функция есть или что еще?
Код: Выделить всё
PORTA |= 1<<PA6; // естановить 6 пин порта в 1
PORTA &= ~(1<<PA6); // сбросить пин 6 порта в 0
PORTA ^= 1<<PA6; // изменить пин 6 порта на противоположный уровеньесли рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
DimAlt
- Вымогатель припоя
- Сообщения: 576
- Зарегистрирован: Пт май 19, 2006 05:39:11
- Контактная информация:
Можно воспользоваться замечательными макросами
pin_macros.h
* Author: Oleksandr Redchuk aka ReAl (real@real.kiev.ua)
*
* Description: port bits access macros for AVR uC family (avr-gcc compiler)
*
* Based on macros by Ascold Volkov, Andy Mozzevilov, Aleksey Musin
pin_macros.h
* Author: Oleksandr Redchuk aka ReAl (real@real.kiev.ua)
*
* Description: port bits access macros for AVR uC family (avr-gcc compiler)
*
* Based on macros by Ascold Volkov, Andy Mozzevilov, Aleksey Musin
- Вложения
-
- pin_macros.h
- (4.01 КБ) 500 скачиваний
hunter03 писал(а):извиняюсь
Не могли бы Вы разъяснить эту строку
<< - битовый сдвиг как я понял
а |= что такое
просто на си писал очень давно
счас в книжку сунулся
там нет ничего такого нет
ЗЫ. или это 2 оператора |и =?
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=37871 - это если владеете ангельским
А если не владеете, то да, это два оператора.
PORTC |= (1<<PC4);
что эквивалентно: PORTC = PORTC | (1<<PC4);
1<<PC4 - это сдвиг единицы на четыре бита влево (как показал тест на эмуляторе
что-такое PC4 вот только не понятно мне) Откуда оно такое?
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
можно, но стоит ли? не лучше ли использовать де-факто стандартные для AVR-GCC макросы, которые уже определены в avr-libc?DimAlt писал(а):Можно воспользоваться замечательными макросами
pin_macros.h
а это всего-навсего заранее определенная константа для обозначения конкретного разряда порта, точно так же, как, например, ADSC обозначает бит запуска АЦП в регистре ADCSRA, так и PC4 обозначает 4-й бит для DDRC, PORTC или PINC.что-такое PC4 вот только не понятно мне) Откуда оно такое? писал(а):что-такое PC4 вот только не понятно мне) Откуда оно такое?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
DimAlt
- Вымогатель припоя
- Сообщения: 576
- Зарегистрирован: Пт май 19, 2006 05:39:11
- Контактная информация:
ARV писал(а):можно, но стоит ли? не лучше ли использовать де-факто стандартные для AVR-GCC макросы, которые уже определены в avr-libc?DimAlt писал(а):Можно воспользоваться замечательными макросами
pin_macros.h
А какой в них криминал? Мне интересно Ваше мнение.
Я сам начал приходить к таким макросам, но у меня на первых порах возникли трудности со склейкой, в поисках примеров нашел этот файл. Для меня это пример, как надо делать. Очень понравился, я не призываю им пользоваться, просто красива сама идея.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
криминала никакого. но большинство привыкают к тому, что есть у всех без исключения (кто пользует avr-gcc), и перепривыкать к вашим поделкам как-то не очень охота... к тому же мне показалось, что там что-то слишком уж лихо накручено... как-то непрозрачно...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
DimAlt
- Вымогатель припоя
- Сообщения: 576
- Зарегистрирован: Пт май 19, 2006 05:39:11
- Контактная информация:
ARV писал(а): перепривыкать к вашим поделкам как-то не очень охота...
Поделка автора Oleksandr Redchuk aka ReAl (real@real.kiev.ua), как то слово это, здесь не к месту.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
ну мы-то от вас об этой поделке узнали - вот и приписали вамDimAlt писал(а):Поделка автора Oleksandr Redchuk aka ReAl (real@real.kiev.ua), как то слово это, здесь не к месту.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Negor
- Вымогатель припоя
- Сообщения: 586
- Зарегистрирован: Ср мар 07, 2007 22:58:02
- Откуда: Черкассы, Украина
- Контактная информация:
Есть ту счастливчики, что удачно пользуют либы из avrlib porcylan вместе с winavr и avrstudio? Пока рабочий вариант - этот makefile. Но это не есть гуд. Неужели нужно всегда создавать makefile самому для каждого проекта? Я понимаю что раньше так и было, но 21й век на дворе. Вобщем проблема как и у многих. На этапе сбора линкер кричит undefined reference to <avrlib> Вот. Т.е. Makefile который создаёт студия не полходит. Все директории везде прописаны(до этого просто не виделись файлы.)
- Вложения
-
- Makefile.rar
- убрать расширение
- (3.98 КБ) 383 скачивания
There is only 10 kind of people: those who understands binary code and those who dont!!!
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Negor, вы бы хоть рассказали, что за либа такая и чем хороша, где взять и прочее... потом можно было бы подумать над вашей бедой...
AI_Disable, при сравнении счетчик таймера не портится! т.е. если вы сами его не запортили, то все будет пучком.
AI_Disable, при сравнении счетчик таймера не портится! т.е. если вы сами его не запортили, то все будет пучком.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
ARV писал(а):AI_Disable, при сравнении счетчик таймера не портится! т.е. если вы сами его не запортили, то все будет пучком.
То есть мне разрешить прерывания по совпадению в режиме normal, а не в CTC? Но тогда такой вопрос: если я буду вручную обнулять таймер из прерывания, не потеряю ли я на этом такты?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
вы огласите задачу: откуда можно было знать, что у вас СТС-режим был? может, оно и не надо - обнулять-то?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
а наоборот нельзя? тогда СТС вы делали бы по OCR1A, как и положено, а по OCR1B прерывались бы...AI_Disable писал(а):Нужно, чтоб сначала таймер досчитал до OCR1A, вызвал прерывание, затем продолжил считать до OCR1B, вызвал прерывание и сразу же обнулился. То есть нужно, чтоб прерывание по совпадению с OCR1A было как "normal", а с OCR1B, как "CTC".
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
читайте даташит - СТС работает по OCR1A или ICR1.AI_Disable писал(а):А таймер разве не сбросится по достижению OCR1B? Я боялся, что режим CTC выбирается для обоих регистров сравнения одновременно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


