Парни! есть кто в "СИ" силен???

на профильном мертвецки все, три сообщения за двое суток. Извините, что тут.

Почему не выходит в CodeVision порту PB0 присвоить противоположное значение так:

PORTB &= ~(PB0);

на синтаксис ругается: Error: c(45): undefined symbol 'PB0'

Что с символом не так??

Или как изменить значение на противоположное - PORTB0 . Мозг мой чайниковый застрял :suxx:
3 / 4
От пользователя Валера
Мозг мой чайниковый застрял

у тебя он хоть есть
а вот мой уже поломан после прочтения вот этого
34 / 2
\/ampire
изменить значение на противоположное

PORTB ^= _BV(PB0);
7 / 1
От пользователя Валера
значение на противоположное

множ на -1
2 / 3
ИМЗ
От пользователя amsport1
а вот мой уже поломан после прочтения вот этого

Засчитывается как попытка помочь
13 / 1
Валера
От пользователя \/ampire
PORTB ^= _BV(PB0);



Error: c(45): undefined symbol '_BV'


фиг знает ругается!! что не хватает?? а для '_BV' надо какие нибудь описания выше?? или все из стандартной библиотеки??

так написал:

понимаю, что быдлокод но работает!!

if(PINB.0==0)
{
PORTB.0=1;
{

else
{
PORTB.0=0;
};

Все равно как то можно просто и в одну строчку :weep:
1 / 1
\/ampire
Ну если не описано то надо объявить

#define _BV(x) (1<<(x))

[Сообщение изменено пользователем 02.09.2015 17:33]
1 / 1
\/ampire
Бортовой комп ваяешь?
1 / 1
Валера
От пользователя \/ampire
надо объявить



не фига !! Error: c(48): undefined symbol 'PB0'


вот кусок цикла который хочу вставить в другое место:


Chip type : ATtiny13A
AVR Core Clock frequency: 1.200000 MHz
Memory model : Tiny
External RAM size : 0
Data Stack size : 16
*****************************************************/

#include <tiny13a.h>
#include <delay.h>




unsigned char b, trig;

#define _BV(x) (1<<(x))


void main(void)
{
PORTB=0x36;
DDRB=0x09;
ACSR=0x80;
#asm("sei")

while (1)

{

if (trig==0) // проверяем если b=0 то
{
b++; // увеличиваем на 1

PORTB ^= _BV(PB0);
delay_ms(100);
}
if (b>10) // как стало 10 то...
{
PORTB.0=0;
trig=1; // надо!! записать 1 перед сбросом
b=0; // сбрасываем
}
}
}
0 / 2
Валера
От пользователя \/ampire
Бортовой комп ваяешь?


не !! умную реле поворотов для мотика
1 / 1
\/ampire
Так тут PB - это просто константа для визуализации кода, чтобы потом не пялиться и не думать - а что это у тебя за Ноль

Объяви порты
/* PORTB */
#define PB7 7
#define PB6 6
#define PB5 5
#define PB4 4
#define PB3 3
#define PB2 2
#define PB1 1
#define PB0 0
8 / 2
Валера
Ура!!!!!!!!
:stadium:

заработало!!!!

#define PB0 0 не хватало!!!!! как хорошо, что не все алкаши пропоицы!!! есть у кого спросить!!!


спасибо!!!
24 / 1
\/ampire
От пользователя Валера
#define PB0 0 не хватало!!!!! как хорошо, что не все алкаши пропоицы!!!


Я просто думал, что это очевидно...

А по поводу алкашей - я и выпить не дурак!!! :-D
25 / 1
Валера
От пользователя \/ampire
Я просто думал, что это очевидно...

для тех кто с этим общается!! я ламер. на асамблере немного писал, Си неделю как всякие учебники штудирую. Интересная херня!! засасывает....


От пользователя \/ampire
А по поводу алкашей - я и выпить не дурак!!!


с не дураками всегда приятно напиться!!! я тоже люблю это дело
5 / 0
John Dow
От пользователя Валера
Интересная херня!! засасывает....

Ты эта.. того смотри...подсядешь, потом глубже полезеш, инкапсуляции, параллельные вычисления ь..и все..понеслась жизь под откос... и уже не вырваться :beach:
5 / 0
HotGuy
От пользователя John Dow
того смотри...подсядешь, потом глубже полезеш, инкапсуляции, параллельные вычисления ь..и все..понеслась жизь под откос... и уже не вырваться

:-D а потом искусственный интеллект и восстание машин - все же терминаторов в виде мотоциклов помнят :-D
1 / 0
Hvost
Для восьмиразрядного можно ещё так мозг засрать. :-)
От пользователя Валера
PORTB &= ~(PB0);

PORTB&0x01 ? PORTB&0xFE : PORTB|0x01;
4 / 2
Валера
От пользователя Hvost
Для восьмиразрядного можно ещё так мозг засрать.


PORTB&0x01 ? PORTB&0xFE : PORTB|0x01;



Тоже работает!!!!!!


тут я в правилах написания вообще не силен!! взяли значение 0x01 младшего разряда - инвертировали - " | " эта херь это присвоили значение что ли порту Б младшему разряду???

а промежуточные вычисления компилятор куда засылает??? вдруг там что нибудь ни так :-D

Когда напрямую воздействуешь - как то понятнее для меня. Тот я еще чайник.
0
Hvost
От пользователя Валера
в правилах написания

На 51-ом асме это выглядело бы так:

JNB P1.0, L1
CLR P1.0
SJMP $+2
L1: SETB P1.0

:-)
3 / 1
осспаде... вы ту про чо вообще, парни? 8( 8( 8(
:lol: :lol: :lol:
21 / 1
TayLoong
От пользователя John Dow
Ты эта.. того смотри...подсядешь, потом глубже полезеш, инкапсуляции, параллельные вычисления ь..и все..

Не заметишь как свитер вырастет.
3 / 0
John Dow
От пользователя TayLoong
Не заметишь как свитер вырастет.

Угу..а объем кофейной кружки увеличиться до 600 мл.
2 / 0
ZyrinVV
на счет кружки подтверждаю ))) у самого на данный момент 0.5л.
программлю в основном на C# (WinForms, WCF, WPF), затянуло по полной...
0
\/ampire
Кружок программистов? :-D
0
John Dow
От пользователя \/ampire
Кружок программистов? :-D

почему кружок ? Н мерный куб.
1 / 0
Авторизуйтесь, чтобы принять участие в дискуссии.