да прилично и помипо этого 0х0f привращает тупо в число(Очень досадно! Вы правы!), досадно что придеться несколько раз повторить с разными действиями, но размерчик меньше.! спасибо ARVARV писал(а):если вы не использовали sprintf в других частях программы, боюсь, вы будете удивлены размером кода, приведенного вами с воплем "вот то, что надо!"....Код: Выделить всё
char buf[32]; //fuse_lo равен 0х06 itoa(fuse_lo,buf,16); if(strlen(buf) < 2) LCDsendString("0"); LCDsendString(buf);
Вопросы по С/С++ (СИ)
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: Вопросы по С/С++ (СИ)
- Реклама
Re: Вопросы по С/С++ (СИ)
как можно задефинить пины портов для пика чтоб можно как в атмегах на CV конекретно управлять пинами на выход
чтобы возможно было писать например
PORTC.3=0;
POPTC.3=A;
чтобы возможно было писать например
PORTC.3=0;
POPTC.3=A;
ух ты.... показывает
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Вопросы по С/С++ (СИ)
И что, по-вашему, должно произойти, если в третий бит порта С записать "А"?12val12 писал(а):POPTC.3=A
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Вопросы по С/С++ (СИ)
А= либо 0 либо 1Gudd-Head писал(а):И что, по-вашему, должно произойти, если в третий бит порта С записать "А"?12val12 писал(а):POPTC.3=A
цель не писать
if (A) { PORTC=PORTC|0b1 } else {PORTC=PORTC & (~ (0b1}
ух ты.... показывает
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: Вопросы по С/С++ (СИ)
Были у меня часы с ду, добавил в часы термометр, всё работает, показывает, кроме одной мелочи
часы перестали реагировать на нажатие кнопки "настройка". Причём кнопка срабатывает как надо, если мы уже в меню. В меню получается возможно зайти только с пульта ду, где эта кнопка продублирована.
Может кто глянуть прошивку, помочь касяк найдти - вроде скобки не пропустил, ничего не удалил.
во вложении 2 кода - до установки термометра и после
часы перестали реагировать на нажатие кнопки "настройка". Причём кнопка срабатывает как надо, если мы уже в меню. В меню получается возможно зайти только с пульта ду, где эта кнопка продублирована.
Может кто глянуть прошивку, помочь касяк найдти - вроде скобки не пропустил, ничего не удалил.
во вложении 2 кода - до установки термометра и после
Последний раз редактировалось levaclaus Пт фев 11, 2011 18:40:14, всего редактировалось 1 раз.
- Реклама
left shift count >= width of type
WinAVR ругается
варнингом "left shift count >= width of type" на строчку
при этом нормально кушает
при том что есть
что я делаю не правильно?
варнингом "left shift count >= width of type" на строчку
Код: Выделить всё
case 0b00000001: Flags |= (1<<RUN_FLAG);break;//set run_flagКод: Выделить всё
case 0b00000001: Flags |= 0b01000000;break;//set run_flagКод: Выделить всё
#define RUN_FLAG 0b01000000- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
задефайнь RUN_FLAG просто на 7.
и на память. это
а это .. жопа. так тоже не правильно 
и на память.
Код: Выделить всё
x |= yКод: Выделить всё
x = x | yКод: Выделить всё
x |= (1 << y)Код: Выделить всё
x = x | ( 1 << y )
Последний раз редактировалось Кислый Вс фев 06, 2011 23:00:14, всего редактировалось 2 раза.
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
так. у меня глобальный вопрос.
обычно в программе я имею один .с и несаколько заголовочных. давно было интересно, как собрать несколько .с в кучу посредством одного заголовочного .h . Я не пойму самого принципа КАК ?
обычно в программе я имею один .с и несаколько заголовочных. давно было интересно, как собрать несколько .с в кучу посредством одного заголовочного .h . Я не пойму самого принципа КАК ?
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18637
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
никак. при помощи заголовочников сишные исходники в кучу не собираются 
и вообще, не всегда между ними может быть связь (количественная).
исходники КОМПИЛИРУЮТСЯ - то ли при помощи makefile, то ли путем принудительного перечисления или еще как-то, поэтому когда ваш проект состоит из нескольких исходников, вы все их и должны "скормить" компилятору, а потом полученные объектные файлы - линкеру. вот как-то так
и вообще, не всегда между ними может быть связь (количественная).
исходники КОМПИЛИРУЮТСЯ - то ли при помощи makefile, то ли путем принудительного перечисления или еще как-то, поэтому когда ваш проект состоит из нескольких исходников, вы все их и должны "скормить" компилятору, а потом полученные объектные файлы - линкеру. вот как-то так
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
не не не. вы меня не правильно поняли.
я не могу понять вот чего:
так я в одном из проэктов прикрепил функцию blow_fish'a работает уже пол года, а вот как ? это мне очень интересно.
я не могу понять вот чего:
Код: Выделить всё
// 1.c
#include ololo.h;
.. blah - blah - blah ..
Код: Выделить всё
// 2.c
#include ololo.h;
.. blah - blah - blah ..
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18637
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
действительно, мне не понятно, что вам не понятно 
хидер - он ведь что делает? он уведомляет компилятор, что такие-то вещи СУЩЕСТВУЮТ и имеют такие-то характеристики (тип, параметры и т.п.). компилятор и компилирует исходники, оставляя по этой информации в нужных местах нужные дыры - адреса для перехода на функции, адреса переменных и т.п. а потом за дело берется компоновщик, который ковыряется во всех объектных файлах проекта, включая системные библиотеки, и ищет все упомянутые в хидерах сущности, помещая на место дыр их адреса или значения... при этом, если надо, прилепляется и код этих сущностей из системных библиотек...
яснее стало?
хидер - он ведь что делает? он уведомляет компилятор, что такие-то вещи СУЩЕСТВУЮТ и имеют такие-то характеристики (тип, параметры и т.п.). компилятор и компилирует исходники, оставляя по этой информации в нужных местах нужные дыры - адреса для перехода на функции, адреса переменных и т.п. а потом за дело берется компоновщик, который ковыряется во всех объектных файлах проекта, включая системные библиотеки, и ищет все упомянутые в хидерах сущности, помещая на место дыр их адреса или значения... при этом, если надо, прилепляется и код этих сущностей из системных библиотек...
яснее стало?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
нет не стало.. ладно. буду искать что-то посерьезнне из литературы.
появился еще вопрос.
как создать массив необходимой мне длинны, когда длинны массива я не знаю в принципе ( допустим он вычисляется )
т.е. конструкция
int a = 5;
int b[a] = {};
невозможна
при этом нельхочется создавать "массив с запасом", и не хочется использовать new.. я теряю ощущение контроля ситуации.
появился еще вопрос.
как создать массив необходимой мне длинны, когда длинны массива я не знаю в принципе ( допустим он вычисляется )
т.е. конструкция
int a = 5;
int b[a] = {};
невозможна
при этом нельхочется создавать "массив с запасом", и не хочется использовать new.. я теряю ощущение контроля ситуации.
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18637
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
во-первых, ваша конструкция и так невозможна в Си, разве что при использовании расширений стандарта (например, GCC вполне позволяет делать локальные массивы с вычисляемым по ходу пьесы размером).Кислый писал(а):как создать массив необходимой мне длинны, когда длинны массива я не знаю в принципе ( допустим он вычисляется )
т.е. конструкция
int a = 5;
int b[a] = {};
невозможна
при этом нельхочется создавать "массив с запасом", и не хочется использовать new.. я теряю ощущение контроля ситуации.
во-вторых, если вы не знаете размер, не хотите делать запас и не желаете использовать динамическое распределение памяти - что вы вообще хотите?! у вас просто взаимоисключающие условия. тут или надо что-то узнать заранее, или чего -то из перечисленного захотеть...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- _AHTOXA_
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Пт янв 21, 2011 14:16:36
- Откуда: Уфа
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Поправочка: на 6.Кислый писал(а):задефайнь RUN_FLAG просто на 7.
Ибо 0b01000000 == 1<<6.
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
вот тут поподробнее. у меня по дефолту установлен GCC ))например, GCC вполне позволяет делать локальные массивы с вычисляемым по ходу пьесы размером
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
ARV писал(а):
яснее стало?
Код: Выделить всё
//1.c
#include <stdio.h>
#include <stdlib.h>
#include "include.h"
int main()
{
int z;
z = bla_bla(10);
printf("%i", z);
return 0;
}Код: Выделить всё
//2.c
#include "include.h"
int bla_bla(int x)
{
return (3*add(x, x));
}
Код: Выделить всё
//include.h
int add (int x, int y)
{
return (x + y);
}
$ gcc *.c -o ./mainRRR
/tmp/cckzpR0R.o: In function `add':
main.c:(.text+0x0): multiple definition of `add'
/tmp/cchkwV7r.o:include.c:(.text+0x0): first defined here
collect2: ld returned 1 exit status
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- Goodefine
- Держит паяльник хвостом
- Сообщения: 906
- Зарегистрирован: Ср апр 16, 2008 13:22:54
- Откуда: Приднестровье, Тирасполь
Re: Вопросы по С/С++ (СИ)
Код: Выделить всё
//include.h
#ifndef INCLUDE_H
#define INCLUDE_H
int add (int x, int y);
#endif
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
- Кислый
- Поставщик валерьянки для Кота
- Сообщения: 2095
- Зарегистрирован: Чт апр 08, 2010 18:50:01
- Откуда: Краснодар
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
так. а как сообщаются два .с файла в одном проэкте ? функции доступны, а переменные и константы - нет ?
RETI ;рети-рети интеррапт, через шины данных тракт, через память, через порт, возвращайся в главный код
@hobbyelectronics
@hobbyelectronics
- Goodefine
- Держит паяльник хвостом
- Сообщения: 906
- Зарегистрирован: Ср апр 16, 2008 13:22:54
- Откуда: Приднестровье, Тирасполь
Re: Вопросы по С/С++ (СИ)
Конечно нет. Принцип инкапсуляции. Чтобы никто шаловливыми ручками ничего не испортил. Но можно сделать видимыми с помощью extern...
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
VLA - Variable-Length Array - это не расширение GCC, а стандарт C99, долгих лет ему жизни.ARV писал(а):разве что при использовании расширений стандарта (например, GCC вполне позволяет делать локальные массивы с вычисляемым по ходу пьесы размером).
И в локальных переменных, и в параметрах
Код: Выделить всё
int foo( int sx, int sy, int array[sy][sx] ) {
int temp = 0;
for( int y = 0; y < sy; ++y)
for( int x = 0; x < sx; ++x )
temp += array[y][x];
return temp;
}Просто, как минимум поначал, часть компиляторов, декларирующих соответствие C99, ограничились поддержкой комментариев "стиля С++", объявлением переменных "по месту", включая for( int i =0; и так далее, да inline. На этом фоне полная поддержка C99 в GCC начала казаться расширениями
Вот что gcc расширил, так С99-е понятие _Complex на целочисленные типы:
Код: Выделить всё
signed char _Complex a, b, c;
void foo()
{
a = b * c;
}Всего лишь warning, а без --pedantic так молча ест.avr-gcc -Os -std=c99 -S -mmcu=atmega8 complex.c --pedantic
complex.c:2:1: warning: ISO C does not support complex integer types [-pedantic]
Код: Выделить всё
foo:
lds r18,b
lds r24,b+1
lds r20,c
lds r19,c+1
mul r20,r18
mov r25,r0
clr r1 ; зря он R1 каждый раз чистит, но это просто недостаток оптимизатора
mul r19,r24
mov r21,r0
clr r1
sub r25,r21
sts a,r25
mul r20,r24
mov r24,r0
clr r1
mul r19,r18
mov r18,r0
clr r1
add r24,r18
sts a+1,r24
retЛень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.



