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

 
 
> Не работает прерывание USB, кто знает работу C8051F320
NikP
сообщение Dec 20 2012, 17:05
Сообщение #1


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

Группа: Участник
Сообщений: 168
Регистрация: 25-08-05
Пользователь №: 7 944



Решаем задачу:считать данные 4К из внешней микросхемы памяти и передать по USB. Читали в оперативку, перекладывали в фифо USB - работало, но медленно. Решили читать из внешней памяти сразу в фифо в прерывании, т.е. просто перенести код из main в модуль interrupt (с недольшими переделками). И передача пропала. Как будто при компиляции часть программы на Си проигнорировалось. Среда Cygnal IDE (старая, но добросовестно работает с небольшими объёмами (в принципе, нам больше и не надо). Что может быть: недостатки IDE, сам контроллер не любит больших программ в прерывании для USB, или всё же только программу смотреть? Повторю, что код пракически без изменения перенесли !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
редактор
сообщение Dec 24 2012, 06:05
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315




Цитата
Не знаю актуально ли для 51-х...

Определите так:
Код
volatile unsigned char FlagReady.

для 51 актуально.
Цитата
Компилируется без ошибок...
А что насчет варнигов?
Если в IDE используете компилятор от KEIL то могу посоветовать следующее
Опции компилятора для модулей не отличаются (модели памяти)?. Если модели памяти указаны разные, то необходимо дополнительно указать тип памяти, например
Код
data unsigned char FlagReady;
...
extern data unsigned char FlagReady;

Если используете переключение банков в прерывании, то в опциях компилятора должно быть установлена галка "Don`t use absolute register access". (Это в Keil, в вашей среде скорее всего опция компилятора "NOAREGS")
Ну и напоследок посмотреть ассемблер, к каким адресам обращается в прерывании и в фоне.
Со связкой кейл-силабс работал много, на такие ошибки не нарывался.


Сообщение отредактировал редактор - Dec 24 2012, 06:10


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 15:58
Рейтинг@Mail.ru


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