Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
ДМ12
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 10
1

Ошибки и предупреждения при компиляции проекта для Attiny2313 в Atmel Studio 7.0

13.06.2018, 13:18. Просмотров 506. Ответов 1
Метки нет (Все метки)

Всем привет.И сразу к сути.У меня написана программа которая должна выводить текст на светодиодах.
Когда я создаю простой файл в atmel и вставляю в него свой код то ошибок нету ,но когда я создаю проект для микроконтроллера ATtiny 2313 и вставляю в него написанную программу то при компиляции возникает 3 ошибки и 4 предупреждения,я не могу понять почему так происходит,может кто нибудь сталкивался с подобной проблемой и нашел решение.
Заранее благодарю если подскажете решение хотя бы частично.
Вот программа:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <avr/io.h>      // this contains all the IO port definitionsсодержит все определения портов ввода-вывода
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
 
void delay_ms( uint16_t milliseconds)
{
   for( ; milliseconds > 0; milliseconds--)
   {
      _delay_ms( 1);
   }
} 
 
 
#define TIMER1_PRESCALE_1 1
#define TIMER1_PRESCALE_8 2
#define TIMER1_PRESCALE_64 3
#define TIMER1_PRESCALE_256 4
#define TIMER1_PRESCALE_1024 5
 
// We use these macros because binary constants arent always supported. ugh.Мы используем эти макросы, потому что бинарные константы arent всегда поддерживаются. тьфу.
#define HEX__(n) 0x##n##UL
#define B8__(x) ((x&0x0000000FLU)?1:0)  \
               +((x&0x000000F0LU)?2:0)  \
               +((x&0x00000F00LU)?4:0)  \
               +((x&0x0000F000LU)?8:0)  \
               +((x&0x000F0000LU)?16:0) \
               +((x&0x00F00000LU)?32:0) \
               +((x&0x0F000000LU)?64:0) \
               +((x&0xF0000000LU)?128:0)
#define B8(d) ((unsigned char)B8__(HEX__(d)))
 
// store all the image data in program memory (ROM)хранить все данные изображения в памяти программы (ПЗУ)
// instead of RAM (the default)// вместо ОЗУ (по умолчанию)
const uint8_t large_image[] PROGMEM = {
 
  B8(00000000), // d
  B8(00111100),
  B8(00100100),
  B8(00111111),
  B8(00000000),
 
  B8(00000000),  // i
  B8(00111101),
  B8(00000000),
 
  B8(00000000),  // g
  B8(10111100),
  B8(10100100),
  B8(11111100),
  B8(00000000),
 
  B8(00000000),  // g
  B8(10111100),
  B8(10100100),
  B8(11111100),
  B8(00000000),
 
  B8(00000000),
  B8(00000000),
  B8(00000000),
  B8(00000000),
  B8(00000000),
  B8(00000000),
};
 
// special pointer for reading from ROM memoryспециальный указатель для чтения из памяти ПЗУ
PGM_P largeimage_p PROGMEM = large_image;
 
#define NUM_ELEM(x) (sizeof (x) / sizeof (*(x)))
int imagesize = NUM_ELEM(large_image);
 
// this function is called when timer1 compare matches OCR1Aэта функция вызывается, когда timer1 сравнивает совпадения с OCR1A
uint8_t j = 0;
SIGNAL( SIG_TIMER1_COMPA ) {
  if (j >= imagesize) 
    j = 0;
 
  // read the image data from ROMчтение данных изображения из ПЗУ
  PORTB = pgm_read_byte(largeimage_p + j); 
 
  j++;
}
 
int main(void) {
 
  DDRB = 0xFF;       // set all 8 pins on port B to outputsустановите все 8 контактов на порту B на выходы
 
  /*
    частота переполнения прерывания определяется 
    делителем и значением переполнения.
    частота = тактовая частота / (2 * делитель * значение переполнения)
    где делитель может быть 1, 8, 64, 256 или 1024
    тактовая частота-8 МГц
    и значение переполнения это 16бит
 
    переливной значение помещается в OCR1A, в масштабирования находится в TCCR1B
    так например:
    Хорошая частота POV составляет около 400 Гц
    Желаемая частота = 400гц
    часы freq(частоты) = 8 МГц
    8MHz / (400Hz * 2) = 10000
    с 10000 меньше, чем 655536 (большой 16 разрядное число)
    OCR1A = 10000 и делитель 1
  */
  /*
    the frequency of the interrupt overflow is determined by the 
    prescaler and overflow value.
    freq = clock_frequency / ( 2 * prescaler * overflow_val)
    where prescaler can be 1, 8, 64, 256, or 1024
    clock_freq is 8MHz
    and overflow_val is 16bit
 
    the overflow value is placed in OCR1A, the prescale is set in TCCR1B
    so for example:
    A good POV frequency is around 400Hz
    desired freq = 400Hz
    clock freq = 8MHz
    8MHz / (400Hz * 2) = 10000
    since 10000 is less than 655536 (largest 16 bit number)
    OCR1A = 10000 and the prescale is 1
  */
 
  TCCR1B = (1 << WGM12) | TIMER1_PRESCALE_1;
  OCR1A = (uint16_t)10000;
 
  TIMSK |= 1 << OCIE1A;   // Output Compare Interrupt Enable (timer 1, OCR1A) По результату сравнения прерываний (Таймер 1,OCR1A) 
 
  sei();                 // Set Enable InterruptsУстановить Включить Прерывания
 
  while (1);
}
Ошибка первая:
Severity Code Description Project File Line
Error recipe for target 'main.o' failed шняга c:\users\demen\Documents\Atmel Studio\7.0\шняга\шняга\Debug\Makefile 79
Ошибка вторая:
Severity Code Description Project File Line
Error variable 'largeimage_p' must be const in order to be put into read-only section by means of '__attribute__((progmem))' шняга c:\users\demen\Documents\Atmel Studio\7.0\шняга\шняга\main.c 76
Ошибка третья:
Severity Code Description Project File Line
Warning 'SIG_TIMER1_COMPA' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr] шняга c:\users\demen\Documents\Atmel Studio\7.0\шняга\шняга\main.c 83
Предупреждение первое:
Severity Code Description Project File Line
Warning #warning "F_CPU not defined for <util/delay.h>" [-Wcpp] шняга c:\program files (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h 92
Предупреждение второе:
Severity Code Description Project File Line
Warning #warning "This header file is obsolete. Use <avr/interrupt.h>." [-Wcpp] шняга c:\program files (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\signal.h 36
Предупреждение 3:
Severity Code Description Project File Line
Error attempt to use poisoned "SIG_TIMER1_COMPA" шняга c:\users\demen\Documents\Atmel Studio\7.0\шняга\шняга\main.c 83
Предупреждение 4:
Severity Code Description Project File Line
Error recipe for target 'main.o' failed шняга c:\users\demen\Documents\Atmel Studio\7.0\шняга\шняга\Debug\Makefile 79

Добавлено через 14 минут
Вот прога,попробуйте у себя,там будет строка и те же ошибки:
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2018, 13:18
Ответы с готовыми решениями:

Таймер в CTC режиме (ATTiny2313, Atmel Studio 6)
Пытаюсь запустить таймер 1 в CTC режиме. Таймер не останавливается на нужном пороге. Atmel Studio...

Atmel Studio 6. Ошибки при попытке собрать проект.
Собственно, имеется два файла: DS1307_lib.h и DS1307_lib.cpp DS1307_lib.h #ifdef DS1307_H...

Ошибки при компиляции проекта
Использую MPLAB X IDE v1.10. Создал проект (благо инфы как это сделать много в нете). Листинг...

Открытие проекта в Atmel Studio
Я раньше работал в CodeVisionAVR, а тут нашел пример программы для работы с дисплеем 12864....

Создание проекта на FreeRTOS в Atmel Studio 7
Всем привет! Проект для контроллера ATMiko1284 с 16Кб оперативки на борту. Делал по этой статье,...

1
ДМ12
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 10
13.06.2018, 13:23  [ТС] 2
Программа c и hex
0
Вложения
Тип файла: rar Новая папка.rar (2.6 Кб, 2 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2018, 13:23

Atmel Studio 6.1 После компиляции в дизассемблере одни NOP
Приветствуй всех. Написал программку на С после компиляции в дизассемблере вот такая картина: ---...

AVR ассемблер. объявление массива .db Atmel Studio 7, ошибка компиляции?
Столкнулся со странной проблемой. Написал код для дисплея. код рабочий такой: .CSEG ;...

Исчезли элементы в окне создания проекта Atmel Studio 7
Пропадают элементы в окне создания проекта Atmel Studio 7, как позже выяснил, исчезают при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru