интересные РАДИОСХЕМЫ самодельные


» СХЕМЫ И СТАТЬИ




Внимание! Форум только для чтения, продолжение на Shemaforum.ru


Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Хочу научиться программировать МК AVR (Все вопросы по написанию кода для продукции Atmel сюда!)
Хочу научиться программировать МК AVR
Ср, 08.04.2015, 21:52 | Сообщение # 281        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Витинари,
Да все бы хорошо, но как придать переменной формат boolean? smile
Ср, 08.04.2015, 22:12 | Сообщение # 282        
Витинари
аватар
  Постов: 2222   Друзья 
После присоединения заголовочных файлов пишешь:
bool led_on;

а в функции main:
led_on=0;
Ср, 08.04.2015, 23:03 | Сообщение # 283        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Вообщем вот что получилось
Код
#include <mega8.h>
unsigned int sek;

bool led_on   

void main(void)   
{

if (sek>3)   
{
PINB.0=1
bool led_on=1
}
else    
{
PINB.0=0
led_on=0      
};

};

Выдает ошибку на bool
missing '('


Отредактировал [PC]Boil-:D - Ср, 08.04.2015, 23:40
Ср, 08.04.2015, 23:43 | Сообщение # 284        
Витинари
аватар
  Постов: 2222   Друзья 
По ходу, у многих такая ошибка.
А если так:
Код

#include <mega8.h>

bit led_on;

void main(void)   
{

if (sek>3)   
{
PINB.0=1;
led_on=1;
}
else    
{
PINB.0=0;
led_on=0;
};  

Точку с запятой ставить не забывай, в C ее отсутствие (если только в строке не функция) считается ошибкой - фактически, она указывает на конец строки.

Вот, какие в codevision есть типы данных:
bit, _Bit 0 или 1
char от -128 до 127
unsigned char от 0 до 255
int от -32768 до 32767
unsigned int от 0 до 65535
long int от -2147483648 до 2147483647
unsigned long int от 0 до 4294967295
float от ±1.175e-38 до ±3.402e38
Ср, 08.04.2015, 23:56 | Сообщение # 285        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Витинари,
Теперь ругается на
bool led_on=1;
Ошибка
undefined symbol 'bool'
Код
#include <mega8.h>
unsigned int sek;  

bit led_on;    

void main(void)    
{  

if (sek>3)    
{  
PINB.0=1;  
bool led_on=1;  
}  
else     
{  
PINB.0=0;  
led_on=0;       
};  

}


Добавлено (08.04.2015, 23:56)
---------------------------------------------
Витинари,
Мне пока эти данные не о чем не говорят smile


Отредактировал [PC]Boil-:D - Ср, 08.04.2015, 23:57
Чт, 09.04.2015, 00:05 | Сообщение # 286        
Витинари
аватар
  Постов: 2222   Друзья 
[PC]Boil-:D, вот это
PINB.0=1;
bool led_on=1;
замени на
PINB.0=1;
led_on=1;
иначе получается, что ты пытаешься обратиться к несуществующей переменной.

Тот список показывал, какие числа ты можешь помещать в переменные этих типов. Создав переменную unsigned char, ты можешь записать в нее значение не меньше 0, но не больше 255. А если переменная будет типа unsigned int, то не меньше -32768, но не больше 32767. Постепенно разберешься с этим.
Чт, 09.04.2015, 00:09 | Сообщение # 287        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Витинари,
Действительно, как я не заметил.. wacko
Чт, 09.04.2015, 00:13 | Сообщение # 288        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Скомпилировалось, но не запускается что-то..
Код
#include <mega8.h>
unsigned int sek;  

bit led_on;    

void main(void)    
{  
PINB=0x01;
DDRB=0x00;

if (sek>3)    
{  
PINB.0=1;  
led_on=1;  
}  
else     
{  
PINB.0=0;  
led_on=0;       
};  

}

Файлы: 9928203.png(14.0 Kb)
Чт, 09.04.2015, 06:55 | Сообщение # 289        
Витинари
аватар
  Постов: 2222   Друзья 
[PC]Boil-:D, проблема лежит где-то в подсчете переменной sec. Покажи, как ты ее считаешь?
Чт, 09.04.2015, 14:15 | Сообщение # 290        
[PC]Boil-:D
аватар
  Постов: 2163   Друзья 
Витинари,
Ну я этот код понимаю примерно вот так
Код
#include <mega8.h> Мы программируем атмегу8
unsigned int sek; Код для включения секунд

bit led_on; Тут типа только два значения 0 и 1    

void main(void)  Начало действий   
{   
PINB=0x01; Задействуем порт номер 1 на выход
DDRB=0x00; Данное действие я не очень понимаю - для чего оно нужно, и как оно читается...  

if (sek>3) Считаем до 3х секунд, и делаем действие ниже   
{   
PINB.0=1; Подаем питание на порт номер 0 (Выход)   
led_on=1; Не очень понимаю, для чего этот кусок нужен, ведь мы его так и так включаем действием выше "PINB.0=1"  
}   
else Выполняем это действие после выше приведенного     
{   
PINB.0=0; Включаем порт номер 0 (Убираем питание)   
led_on=0; Уже писал выше       
}; Конец переменной, идем дальше  

} Окончательная точка прошивки.

Как-то так..
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Хочу научиться программировать МК AVR (Все вопросы по написанию кода для продукции Atmel сюда!)
Поиск:

Форум только для чтения, обсуждение на Shemaforum.ru


Группа вконтакте Канал ютуб Группа в фэйсбук © 2010-2021 "Радиосхемы" Все права защищены Почта Моб.версия