реклама на сайте
подробности

 
 
> AT91SAM7S новичок
Xeon
сообщение Dec 19 2011, 06:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Всем доброго времени суток!!! Имеется платка с AT91SAM7S. Подскажите пожалуйста как использовать прерывания или где посмотреть, примеры.
Очень буду признателен!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xeon
сообщение Dec 22 2011, 07:28
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 140
Регистрация: 21-04-11
Пользователь №: 64 524



Возникла следующая ситуация (смотрел стандартным отладчиком):
как уже писал выше есть разделения кода на файлы (есть главный файл main, Protocol.h хранит некоторые переменные, объявленные как static, и прототипы, объявленные как extern и использующие эти переменные...) в главном файле соответственно прописано:
extern "C" {
#include "Protocol.h"
...
}
Так вот, когда пытаюсь обратиться к статическим переменным, объявленным в Protocol.h из главного файла, то в них хранятся нули... а когда из Protocol.c то всё норм.
Это дело возникает скорее всего из-за ограничения видимости этих самых переменных (так как они в файле объявлены глобально и как статические, их видимость заканчивается на этом же файле, в моём случае Protocol.c... или я неправ?)
Конечно, можно решить проблему следующим образом: создать в Protocol функции которые бы возвращали значения этих переменных... но... неужели в кейле нет чего-нить проще? И почему кейл не позволяет объявлять переменные и функции в разных файлах например как visual studio (там не требуется не каких static и extern)???

Ну и тут же в голову влез ещё один вопрос! Так как есть доступ к этим переменным из Protocol и из main, но в первом случае всё заполнено нулям, а во втором нормальными данными, при этом у меня изменяются значения только в Protocol, а в main я их не изменяю... может быть компилятор создал две копии каждой переменной... и одни доступны только для main другие только для Protocol?

Цитата(Xeon @ Dec 22 2011, 10:21) *
Ну и тут же в голову влез ещё один вопрос! Так как есть доступ к этим переменным из Protocol и из main, но в первом случае всё заполнено нулям, а во втором нормальными данными, при этом у меня изменяются значения только в Protocol, а в main я их не изменяю... может быть компилятор создал две копии каждой переменной... и одни доступны только для main другие только для Protocol?


На этот вопрос сам и ответил... именно так и происходит... компилятор создаёт два варианта переменных одни доступны для main другие для Protocol (проверил следующим образом: изменял их и в файле main и в файле Protocol, и там и там находились значения которые записывал...естесно разные но правильные). И если убираю static у переменных то начинает ругаться линковщик: типа множественное определение там-то и там-то...
Так как правильно в кейле делать разделения программы на файлы?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Xeon   AT91SAM7S новичок   Dec 19 2011, 06:35
- - Lotor   Вероятнее всего с Вашей платкой примеры и идут. P...   Dec 19 2011, 06:45
|- - Xeon   Цитата(Lotor @ Dec 19 2011, 10:45) Вероят...   Dec 19 2011, 06:46
|- - Lotor   Цитата(Xeon @ Dec 19 2011, 10:46) Платку ...   Dec 19 2011, 06:56
|- - Xeon   Цитата(Lotor @ Dec 19 2011, 10:56) Но зад...   Dec 19 2011, 07:00
|- - Lotor   Цитата(Xeon @ Dec 19 2011, 11:00) Буду оч...   Dec 19 2011, 07:09
- - Xeon   Lotor Спасибо!!!   Dec 19 2011, 08:01
- - kovigor   Цитата(Xeon @ Dec 19 2011, 09:35) Всем до...   Dec 19 2011, 09:25
- - Xeon   Получается что в AT91SAM7S может использоваться 32...   Dec 20 2011, 03:35
- - Xeon   Люди а как правильно делать выход из прерывания? А...   Dec 20 2011, 05:56
- - toweroff   посмотрите документацию на контроллер прерываний в...   Dec 20 2011, 06:00
|- - Xeon   Цитата(toweroff @ Dec 20 2011, 09:00) пос...   Dec 20 2011, 06:02
|- - toweroff   Цитата(Xeon @ Dec 20 2011, 10:02) Т.е. ав...   Dec 20 2011, 06:18
- - Xeon   Спасибо toweroff! А как правильно в keil дела...   Dec 20 2011, 06:28
|- - Lotor   Цитата(Xeon @ Dec 20 2011, 10:28) Спасибо...   Dec 20 2011, 06:50
|- - Xeon   Цитата(Xeon @ Dec 20 2011, 09:28) Спасибо...   Dec 20 2011, 07:06
|- - Lotor   Цитата(Xeon @ Dec 20 2011, 11:06) Если эт...   Dec 20 2011, 07:25
||- - Xeon   Цитата(Lotor @ Dec 20 2011, 10:25) Тем не...   Dec 20 2011, 08:45
|- - kovigor   Цитата(Xeon @ Dec 20 2011, 11:06) книга-б...   Dec 20 2011, 09:21
|- - Xeon   Цитата(kovigor @ Dec 20 2011, 12:21) Ложь...   Dec 20 2011, 09:29
- - toweroff   выкладывайте... так сложно сказать   Dec 20 2011, 06:47
- - toweroff   а зачем __irq закоментили? и где сброс флага преры...   Dec 20 2011, 08:49
- - Xeon   Закоментил потому что в примерах нету __irq а врод...   Dec 20 2011, 09:11
- - Xeon   Возникла ещё одна проблема)... Создас файлики Pro...   Dec 21 2011, 07:40
- - Lotor   Вы для кучи память выделили же?   Dec 21 2011, 07:55
- - Xeon   Опа...) нет...) а как это сделать?)   Dec 21 2011, 08:00
|- - Lotor   Цитата(Xeon @ Dec 21 2011, 12:00) Опа...)...   Dec 21 2011, 08:11
|- - Xeon   Цитата(Lotor @ Dec 21 2011, 11:11) Если у...   Dec 21 2011, 08:15
|- - toweroff   Цитата(Xeon @ Dec 21 2011, 12:15) А какой...   Dec 21 2011, 08:18
|- - Xeon   Цитата(toweroff @ Dec 21 2011, 11:18) а э...   Dec 21 2011, 08:46
|- - aaarrr   Цитата(Xeon @ Dec 21 2011, 12:46) Как я п...   Dec 21 2011, 09:10
|- - Xeon   Цитата(aaarrr @ Dec 21 2011, 12:10) Нужно...   Dec 21 2011, 09:32
|- - aaarrr   Цитата(Xeon @ Dec 21 2011, 13:32) А как в...   Dec 21 2011, 09:54
- - Lotor   А зачем в Вашем случаи делать глобальные переменны...   Dec 22 2011, 08:35
|- - Xeon   Цитата(Lotor @ Dec 22 2011, 11:35) А заче...   Dec 22 2011, 08:42
|- - Lotor   Цитата(Xeon @ Dec 22 2011, 12:42) Может п...   Dec 22 2011, 08:47
- - Xeon   Только что создал новый проект... в нем 3 файла pp...   Dec 22 2011, 09:01
|- - Lotor   Цитата(Xeon @ Dec 22 2011, 13:01) Ну и та...   Dec 22 2011, 09:03
- - Xeon   Ну и ещё одно... разве стандарт С требует при объя...   Dec 22 2011, 09:06
- - Lotor   Цитата(Xeon @ Dec 22 2011, 13:06) Ну и ещ...   Dec 22 2011, 09:09
- - Xeon   Цитата(Lotor @ Dec 22 2011, 12:09) По-мое...   Dec 22 2011, 09:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016