Магический кристалл

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: Магический кристалл

Сообщение yak-40 » 13 мар 2010, 00:07

Мигание светодиодом для CVAVR Проверил, работает.
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
void main(void)

  DDRB=0b00000001;
  while(1)
    {
       PORTB.0=1;   
       delay_ms(500);
       PORTB.0=0;   
       delay_ms(500);       
    }
}
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Магический кристалл

Сообщение =DeaD= » 13 мар 2010, 00:08

2GrayHunter: Не работает - может пишет чего? Может вы WinAVR не поставили для AVR Studio, или тип проекта указали asm, а не gcc.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Магический кристалл

Сообщение Vovan » 13 мар 2010, 01:03

Вот блин! а я и не посмотрел, что си уже вовсю... написал ШИМ на асм, ну походу опоздал...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Магический кристалл

Сообщение GrayHunter » 13 мар 2010, 11:20

Всё ровно выкладывай - вдруг пригодится.
Кстати, читал в каком-то из учебников, что в Си можно Асм вставлять - неужели прям целые/большие коды?

P.S.- спасибо за примеры с миганием, сегодня вечером засяду конвертировать Асм в Си (сейчас ухожу в подмосковные пещеры - Сьяны) :)
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение Vovan » 13 мар 2010, 22:07

Пожалуй я пока воздержусь код выкладывать, вдруг своим вмешательством всё испорчу...
Кроме того, т.к. сам являюсь начинающим и изучающим си - не перестаю удивляться - насколько здесь (в си) всё выровнено (если можно так выразиться)...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: Магический кристалл

Сообщение GrayHunter » 14 мар 2010, 18:26

Пытаюсь скомпилировать в Студии (AVRStudio) этот код:
Код: Выделить всё
#include <C:\WinAVR\mega8.h>
#include <C:\WinAVR\delay.h>
void main(void)

  DDRB=0b00000001;
  while(1)
    {
       PORTB.0=1;   
       delay_ms(500);
       PORTB.0=0;   
       delay_ms(500);       
    }
}

Файлы mega8.h и delay.h взяты от проги CodeVisionAVR C Compiler.
Не работает, пишет вот что:
Build started 14.3.2010 at 17:36:08
avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 2.o -MF dep/2.o.d -c ../2.c
In file included from ../2.c:1:
C:\WinAVR\mega8.h:9: warning: ignoring #pragma used
C:\WinAVR\mega8.h:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TWBR'
C:\WinAVR\mega8.h:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TWSR'
C:\WinAVR\mega8.h:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TWAR'
...
C:\WinAVR\mega8.h:77: warning: ignoring #pragma used
In file included from ../2.c:1:
C:\WinAVR\mega8.h:106:2: error: invalid preprocessing directive #asm
C:\WinAVR\mega8.h:109: error: expected identifier or '(' before '.' token
C:\WinAVR\mega8.h:118:2: error: invalid preprocessing directive #endasm
In file included from ../2.c:2:
C:\WinAVR\delay.h:7: warning: ignoring #pragma used
C:\WinAVR\delay.h:12: warning: ignoring #pragma used
../2.c:3: warning: return type of 'main' is not 'int'
../2.c: In function 'main':
../2.c:5: error: 'DDRB' undeclared (first use in this function)
../2.c:5: error: (Each undeclared identifier is reported only once
../2.c:5: error: for each function it appears in.)
../2.c:8: error: 'PORTB' undeclared (first use in this function)
../2.c:8: error: expected ';' before numeric constant
../2.c:10: error: expected ';' before numeric constant
make: *** [2.o] Error 1
Build failed with 76 errors and 5 warnings...


Что я неправильно делаю?

P.S.- последнюю WinAVR поставил до компиляции и перезагрузился. Проект вроде С (AVR GCC).
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение yak-40 » 14 мар 2010, 18:54

Ну ты уж определись в чём писАть будешь :)
Потому как в CVAVR подключается файл так: #include <mega8.h>
а в AVRStudio так: #include "mega8.h"
Чувствуешь разницу? :wink:
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Магический кристалл

Сообщение GrayHunter » 14 мар 2010, 19:23

Я бы предпочёл писать в Студии.

Сделал так:
Код: Выделить всё
#include "mega8.h"
#include "delay.h"

Не работает - пишет:
../2.c:1:19: error: mega8.h: No such file or directory
../2.c:2:19: error: delay.h: No such file or directory
...


Сделал так:
Код: Выделить всё
#include "C:\WinAVR\mega8.h"
#include "C:\WinAVR\delay.h"

Не работает - пишет:
avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 2.o -MF dep/2.o.d -c ../2.c
In file included from ../2.c:1:
C:\WinAVR\mega8.h:9: warning: ignoring #pragma used
C:\WinAVR\mega8.h:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TWBR'
C:\WinAVR\mega8.h:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'TWSR'
...
C:\WinAVR\mega8.h:77: warning: ignoring #pragma used
In file included from ../2.c:1:
C:\WinAVR\mega8.h:106:2: error: invalid preprocessing directive #asm
C:\WinAVR\mega8.h:109: error: expected identifier or '(' before '.' token
C:\WinAVR\mega8.h:118:2: error: invalid preprocessing directive #endasm
In file included from ../2.c:2:
C:\WinAVR\delay.h:7: warning: ignoring #pragma used
C:\WinAVR\delay.h:12: warning: ignoring #pragma used
../2.c:3: warning: return type of 'main' is not 'int'
../2.c: In function 'main':
../2.c:5: error: 'DDRB' undeclared (first use in this function)
../2.c:5: error: (Each undeclared identifier is reported only once
../2.c:5: error: for each function it appears in.)
../2.c:8: error: 'PORTB' undeclared (first use in this function)
../2.c:8: error: expected ';' before numeric constant
../2.c:10: error: expected ';' before numeric constant
make: *** [2.o] Error 1
Build failed with 76 errors and 5 warnings...


Значит проблема не в этом... тогда в чём?
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение =DeaD= » 14 мар 2010, 19:25

Попробуйте снести нафиг всё и заново поставить AVR Studio и потом WinAVR
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Магический кристалл

Сообщение Duhas » 14 мар 2010, 19:30

вот отчасти за что я не люблю Си ) вместо того чтобы думать о коде, думаешь как юзать либы и как ставить компилятор, как собирать проект... программист уже не кодит, а конструкторы собирает...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Магический кристалл

Сообщение GrayHunter » 14 мар 2010, 19:32

Мне кажется эта проблема не решится "пинанием колёс и протиранием стёкл", мне кажется, что проблема с заголовочным файлом... я взял файл из другой проги, а ведь в Студии должен быть свой, для Си, так? где тогда его искать?
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение Duhas » 14 мар 2010, 19:40

блин а я думал об этом, ессно свои инклуды у винАВР
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Магический кристалл

Сообщение GrayHunter » 14 мар 2010, 20:17

блин а я думал об этом, ессно свои инклуды у винАВР

где тогда его искать?
:pardon:

Добавлено спустя 23 минуты 36 секунд:
Пожалуйста,
выложите код, который можно скомпилить в Студии.

Либо, что менее желательно, чем первое, расскажите точную последовательность действий, чтобы скомпилить код в CodeVisionAVR C Compiler.
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Re: Магический кристалл

Сообщение yak-40 » 14 мар 2010, 21:03

GrayHunter писал(а):расскажите точную последовательность действий, чтобы скомпилить код в CodeVisionAVR C Compiler.

Открываешь CodeVisionAVR.
С помощью генератора начального кода создаёшь проект.
Копируешь код который я выкладывал выше в файл с расширением с.
Нажимаешь Shift+F9.
Получаешь HEX файл.
Пользуешься :)
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Магический кристалл

Сообщение GrayHunter » 15 мар 2010, 02:01

Спасибо, разобрался. :)

Пара вопросов:
1) как в Си сделать подпрограмму (т.е. чтобы несколько функций было вместе) и вызывать её там, где нужно?
2) как на Си сделать "дыхание" светодиода?
GrayHunter
 
Сообщения: 231
Зарегистрирован: 06 июн 2009, 20:42
Откуда: Москва

Пред.След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9