LINUX.ORG.RU

#include

 


1

1

Здравствуйте. Система Open Suse Leap 15.0. Установил avr-gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812], avr-libc. Пытаюсь скомпилировать исходник на си, выдает ошибку: d.c:2:10:

fatal error: avr/io.h: No such file or directory
 #include <avr/io.h>
          ^~~~~~~~~~
compilation terminated.
Нашел файл io.h: 
find /usr/ -name io.h | grep avr
find: ‘/usr/share/polkit-1/rules.d’: Отказано в доступе
/usr/src/linux-4.4.159-73/arch/avr32/include/asm/io.h
/usr/src/linux-4.4.159-73/arch/avr32/mach-at32ap/include/mach/io.h
/usr/avr/sys-root/include/avr/io.h
При компиляции добавил опцию -l с описанием последнего пути выданного find, все равно таже ошибка. Пожалуйста, помогите.



Последнее исправление: Deleted (всего исправлений: 1)

Ответ на: комментарий от mickey_mouse

атмега328

TCCR0 |= (1 << CS01)

В 328 меге за это отвечает TCCR0B.
И вообще, старайся не использовать подобные (регистр |= константа) операции с гцц, потому что на выходе компилятора получишь что-то вроде этого:

; загрузили в РОН, содержимое TCCR0B
; в зависимости от внутренней организации вместо in может быть lds, подробности в даташите
in r16, TCCR0B
; загрузили в РОН константу, это лишняя и бессмысленная операция
ldi r24, 1<<CS01
; сделали лог. И
or r16, r24
; выгрузили РОН в ТCCR0B
out TCCR0B, r16

вместо:

in r16, TCCR0B
ori r16, 1<<CS01
out TCCR0B, r16
казалось бы потеря одного такта, но гцц такой во всем - не оптимален по чуть-чуть, но везде.

На самом деле операция И в данном случае либо не нужна (при инициализации ТС достаточно сделать TCCR0B = 1<<CS01), либо ошибочна (т.к. в 1 могут быть установлены CS00, CS02, с которыми коэф. деления не будет равен 8).

Приведенного фрагмента уже достаточно для того, чтобы назвать код - говном (сколько еще ошибок он содержит?).

anonymous
()
Ответ на: комментарий от mickey_mouse

util/delay.h

Не делай так. В твоей меге 3 аппаратных таймера (5, с небольшими ограничениями), используй их, вместо тупого цикла (delay.h).

anonymous
()
Ответ на: комментарий от anonymous

ХЗ, как оно внутри работает
Даташиты? Нет,не слышал, я просто обмазался библиотеками.

Iron_Bug, вот примерно так и бывает, когда пытаются начать изучение МК с ЯВУ.

anonymous
()
Ответ на: комментарий от anonymous

И

тьфу, ИЛИ (ночью надо спать, да)

anonymous
()
Ответ на: комментарий от anonymous

При чем здесь язык?

Ассемблер уж точно нафиг не сдался!!! Просто надо по-человечески: сначала документацию изучить, а потом на рожон лезть. Но полным-полно таких вантузятников, которым лень читать документацию. Для таких вместо линукса придумали бубунту, поцтеринг для них написал свой поцтерошлак, и т.д., и т.п. В общем, мир катится в задницу потому, что некому идиотов уму-разуму научить или хотя бы пулю в тупую башку пустить!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.