Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение AI_Disable »

backdoor_64 писал(а):блин, и все равно не получается реализовать код:

Код: Выделить всё

for(n=0;n<4;n++) {
DDRB.4=1;
PORTB.4=0;
DDRB.4=0;
};

так, чтобы с каждой итерацией цикла менялся номер разряда от 0 до 4 (n в DDR.n и в PORTB.n)

Я правильно понимаю, что нужно сделать вышеописанную операцию с регистрами PORTB и DDRB или это что-то другое?
Не верно понял.

Код: Выделить всё

DDRB|=(1<<n); //записать единицу в бит n
DDRB&=~(1<<n); //записать ноль в бит n
DDRB = (DDRB&(~(1<<n))) | (t<<n); // универсальная конструкция. t (либо 0, либо 1) записывается в n-й бит DDRB
//во всех трёх случаях биты, кроме n-го, не изменяются.
backdoor_64
Родился
Сообщения: 8
Зарегистрирован: Сб фев 25, 2012 16:48:42

Re: Вопросы по С/С++ (СИ)

Сообщение backdoor_64 »

AI_Disable писал(а):
backdoor_64 писал(а):блин, и все равно не получается реализовать код:

Код: Выделить всё

for(n=0;n<4;n++) {
DDRB.4=1;
PORTB.4=0;
DDRB.4=0;
};

так, чтобы с каждой итерацией цикла менялся номер разряда от 0 до 4 (n в DDR.n и в PORTB.n)

Я правильно понимаю, что нужно сделать вышеописанную операцию с регистрами PORTB и DDRB или это что-то другое?
Не верно понял.

Код: Выделить всё

DDRB|=(1<<n); //записать единицу в бит n
DDRB&=~(1<<n); //записать ноль в бит n
DDRB = (DDRB&(~(1<<n))) | (t<<n); // универсальная конструкция. t (либо 0, либо 1) записывается в n-й бит DDRB
//во всех трёх случаях биты, кроме n-го, не изменяются.



yahooo!!! спасибо огромное. :write: теперь работа пойдет полным ходом)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

Мастер Ломастер писал(а):мне кажется, тут сыграла роль одна тонкость перевода стандарта Си: ? - это ОПЕРАЦИЯ, т.е. действие, порождающее ЗНАЧЕНИЕ, а не ОПЕРАТОР, т.е. действие, не порождающее значение. видимо, при переводе однажды кто-то счел возможным подменить смысл слова ОПЕРАЦИЯ смыслом слова ОПЕРАТОР, и с тех пор и покатило...

+= это ОПЕРАЦИЯ, for - это ОПЕРАТОР. и т.

мне кажется смысл слов оператор и операция в русском я зыке сходен с программным.
операция это действие, а оператор - символ или комбинация символов с помощью которых это действие производится.

Операция по удалению почки - оператор хирург :)

Мастер Ломастер, IfoR Спасибо вам за разъяснение тернарной операции.
В поисках истины человек развивается.
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

http://avru.cwx.ru/uchebnik/7sigmentnik ... d_avr.html

cvavr пишет 4 ошибки что там не так
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение sachok »

Тема по CVAVR рядом! Во вторых, екстрасенсы в отпуске! Какие ошибки? Не у многих людей компилятор в голове...мне лично лень запустить виртуалку и попробовать скомпилировать... Но скажу что когда то делал по этому примеру свой первый проект на АЛС и все работало.
Я не Сашок!!!
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

он не показывает где ошибки :(
1 нашел } <-этой фиговины в одном месте не хватало почемуто :dont_know:
терь 3 ошибки осталось

вот что пишет при компиляции :
Chip: ATtiny2313
Clock frequency: 4,000000 MHz
Memory model: Tiny
Optimize for: Size
(s)printf features: int, width
(s)scanf features: int, width
Promote 'char' to 'int': Yes
'char' is unsigned: Yes
global 'const' stored in FLASH: No
8 bit enums: Yes
Enhanced core instructions: Yes
Automatic register allocation: Yes
Smart register allocation: Yes

Build: 1
652 line(s) compiled

3 error(s)
No warnings

Bit variables size: 0 byte(s)

Data Stack area: 0x60 to 0x7F
Data Stack size: 32 byte(s)
Estimated Data Stack usage: 0 byte(s)

RAM Global variables size: 0 byte(s)

Hardware Stack area: 0x80 to 0xDF
Hardware Stack size: 96 byte(s)

Heap size: 0 byte(s)

EEPROM usage: 0 byte(s), 0,0% of EEPROM


вот код :

#include <tiny2313.h>
#include <delay.h>
#define digit1 PORTD.6
#define digit2 PORTD.5
#define digit3 PORTD.4

flash char digits[] = {
0b00000011,
0b10011111,
0b00100101,
0b00001101,
0b10011001,
0b01001001,
0b01000001,
0b00011111,
0b00000001,
0b00001001,
0b11111101,
0b11111111
};
char digit_out[3], cur_dig;
unsigned int indication;
void recoding(void) {
if (indication<1000) {
digit_out[0]=indication%10;
indication=indication/10;
digit_out[1]=indication%10;
digit_out[2]=indication/10;
}
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTB=0xFF;
switch (cur_dig){
case 0:{digit3=0; digit1=1; break;};
case 1:{digit1=0; digit2=1; break;};
case 2:{digit2=0; digit3=1; break;};
}
PORTB=digits[digit_out[cur_dig]];
cur_dig++;
if(cur_dig==3) cur_dig=0;
}
void main(void)
{
PORTB=0xFF;
DDRB=0xFF;
PORTA=0?00;
DDRA=0?00;
PORTD=0xFF;
DDRD=0?70;
TCCR0A=0?00;
TCCR0B=0?02;
TCNT0=0?00;
OCR0A=0?00;
OCR0B=0?00;
TIMSK=0?02;
#asm(”sei”);
}
while (1)
{
indication= 123;
recoding();
}




* у меня тут ищё проблемка образовалась :
мне надо генератор цастоты от 1-400 герц и чтоб на табло это выводилась частота
но надо чтоб он был как можно более точнымвот как ето написать (я думаю что с задержкой не прокатит ?)

**микра будет мега8
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение sachok »

леня писал(а):как ето написать

Все он показывает. Если для Вас "}" - фиговина, то ответ на вопрос в цитате - только за деньги. В раздел "Из лап в лапы".
И все же следует прилерживатся темы, http://radiokot.ru/forum/viewtopic.php?f=20&t=5560&start=3660 тут воросы по CVAVR
Я не Сашок!!!
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

sachok писал(а):
леня писал(а):как ето написать

Все он показывает. Если для Вас "}" - фиговина, то ответ на вопрос в цитате - только за деньги. В раздел "Из лап в лапы".
И все же следует прилерживатся темы, http://radiokot.ru/forum/viewtopic.php?f=20&t=5560&start=3660 тут воросы по CVAVR

я был злой на фигурную скобку и поэтому назвал её фиговиной :)))
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

Сюда внимательно посмотрите и подумайте

Код: Выделить всё

PORTA=0?00;
DDRA=0?00;
PORTD=0xFF;//тут x
DDRD=0?70;// а тут х
TCCR0A=0?00;
TCCR0B=0?02;
TCNT0=0?00;
OCR0A=0?00;
OCR0B=0?00;
TIMSK=0?02;

внимательно печатайте на английской раскладке клавиатуры, тогда может не будет ошибок и вообще так то в CV есть стандартный настройщик регистров.
В поисках истины человек развивается.
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

всё уже.
на другом форуме помогли.

там эта долбанная фиговина (фигурная скобка блин) не в том месте стояла (я её тоже не в то место переставил:-))) )

теперь работает 8)
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение AI_Disable »

леня писал(а):всё уже.
на другом форуме помогли.

Спасибо, что написали это здесь. А то мы же так волновались. Зато теперь будем знать, что мы хуже, чем другой_форум.
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение IfoR »

AI_Disable, да успокойся ты. Ну не знал человек, что писать какой либо код за пределами функций (то что после main()) - бессмысленно, ну не знает азов Си, что такого? Его дело малое: copy, paste и пошёл. :)
леня, какой именно частоты нужен генератор? Меандр, треугольник, синус, что-то ещё?
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

частота примерно 1 - 400 герц П образный (будет стробоскоп для определения скорости вращения)
чють не забыл эту частоту должен выводить на экранчик
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

AI_Disable писал(а):
леня писал(а):всё уже.
на другом форуме помогли.

Спасибо, что написали это здесь. А то мы же так волновались. Зато теперь будем знать, что мы хуже, чем другой_форум.


Ага,а то что на этом почти мгновенно в личку исправленный текст кинули молчит...

леня
Стробоскоп для измерения частоты вращения? Это что то новое.На каком принципе основан измеритель?
В поисках истины человек развивается.
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение IfoR »

vitalik_1984, ну как, всё просто. Настраиваем частоту стробоскопа так, что бы объект, частоту вращения которого измеряем, "остановился". То есть так он будет виден. Это и будет частота вращения, в оборотах в секунду. Правда, измерять так можно только быстровращающиеся предметы. Да и если мерять частоту радиально симметричных предметов, например, куллер, то могут попадаться ложные частоты, когда предмет проворачивается не целой поворот, а дробный. Тут нужно брать минимальную частоту.
Так удобно струны на гитаре настраивать.
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Аватара пользователя
леня
Это не хвост, это антенна
Сообщения: 1399
Зарегистрирован: Пн сен 13, 2010 17:34:06
Откуда: калуга
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение леня »

vitalik_1984 писал(а):Стробоскоп для измерения частоты вращения? Это что то новое.На каком принципе основан измеритель?

я тут сначало сообщение написал потом в личку посмотрел (яж вроде в личке спасибо сказал :) )

леня, отучайся от многоэтажных цитат и приучайся редактировать их.

Gudd-Head
ВРУБАЙ !!!
И будь что будет !!!
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение vitalik_1984 »

IfoR писал(а):Да и если мерять частоту радиально симметричных предметов, например, куллер, то могут попадаться ложные частоты, когда предмет проворачивается не целой поворот, а дробный. Тут нужно брать минимальную частоту.
Так же может попасться двойной оборот лучше посчитать количество "совпадений" при увеличении частоты оно должно быть равно количеству лопастей,а проще метку поставить маркером :)

А можно обороты и без стробоскопа померять.
Наклеечку отражающую клеишь и меряешь частоту тахометром(программным) тут есть на форуме темы.
Так можно довольно большие пределы измерения получить если еще какие нибудь делители на мелкосхемах применить.
А если интересно стробоскоп применить можно на основе полученной частоты еще и его задействовать.только делать алгоритм исключения его влияния на измерение придется или просто светофильтр.
IfoR писал(а):Так удобно струны на гитаре настраивать.
Удобно и быстро струны настраивать настройщиком за 500рэ который можно самому сделать :)

Но это все к сожалению выходит за рамки этой темы.Может создадите новую и мы уже там продолжим обсуждение? ;)
В поисках истины человек развивается.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Мастер Ломастер »

и каким боком тут С/С++ ???
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Вопросы по С/С++ (СИ)

Сообщение Jack_A »

Мастер Ломастер писал(а):и каким боком тут С/С++ ???


Дык в самый раз. Только извращенцы настраивают струны посредством Delphi, а все остальные -- исключительно через С/С++ и даже С#.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопросы по С/С++ (СИ)

Сообщение Аlex »

Видимо отвлекаете о великого мастера своими постами от величайших дел :solder:
Как вы только посмели :facepalm:
Ответить

Вернуться в «Разные вопросы по МК»