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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> PIC18F2520 проблемма с SSPCON1
Kolia
сообщение Sep 24 2009, 19:17
Сообщение #1


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Добрый день.

При записи в регистр SSPCON1 программа вылетает в другое место в чем трабла?

Код на С

SSPCON1 &= 0xF0;

На ассемблере:

movlw 0xF0
andwf 0xFC6

конкретно в отладчите вылетает на movlw 0xF0
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 24 2009, 19:31
Сообщение #2


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Kolia @ Sep 24 2009, 23:17) *
Добрый день.

При записи в регистр SSPCON1 программа вылетает в другое место в чем трабла?

Код на С

SSPCON1 &= 0xF0;

На ассемблере:

movlw 0xF0
andwf 0xFC6

конкретно в отладчите вылетает на movlw 0xF0

Мало информации. Лучше приведите листинг из этого места.
К примеру, неясен метод доступа, что в BSR....
А то, может так случится, что идет обращение к несуществующему адресу.
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 24 2009, 20:07
Сообщение #3


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



вот файлик
Прикрепленные файлы
Прикрепленный файл  listing.txt ( 11.23 килобайт ) Кол-во скачиваний: 97
 
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 27 2009, 10:53
Сообщение #4


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Может проблемма с портами при инициализации I2C? Как их правильно настроить на вход или выход?
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 27 2009, 16:29
Сообщение #5


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Kolia @ Sep 27 2009, 14:53) *
Может проблемма с портами при инициализации I2C? Как их правильно настроить на вход или выход?

Вот, что удалось вычитать из Datasheeta:
CODE

17.3.3 ENABLING SPI I/O
To enable the serial port, SSP Enable bit, SSPEN
(SSPCON1<5>), must be set. To reset or reconfigure
SPI mode, clear the SSPEN bit, reinitialize the
SSPCON registers and then set the SSPEN bit. This
configures the SDI, SDO, SCK and SS pins as serial
port pins. For the pins to behave as the serial port function,
some must have their data direction bits (in the
TRIS register) appropriately programmed as follows:
• SDI is automatically controlled by the SPI module
• SDO must have TRISC<5> bit cleared
• SCK (Master mode) must have TRISC<3> bit
cleared
• SCK (Slave mode) must have TRISC<3> bit set
• SS must have TRISA<5> bit set
Any serial port function that is not desired may be
overridden by programming the corresponding data
direction (TRIS) register to the opposite value.

В переводе на человеческий язык там написано, что для того, чтобы разрешить последовательный порт, надо установить SSPEN (SSPCON1<5>).
Для сброса или реконфигурации режима SPI надо очистить SSPEN, ре инициализировать SSPCON и затем установить бит SSPEN.
Это сконфигурирует выводы SDI, SDO, SCK и SS, как выводы последовательного порта.
Для выводов, выполняющих функции последовательного порта, их направления передачи уместно запрограммировать следующим образом:
• SDI - автоматически управляется модулем SPI
• SDO - должен иметь бит TRISC<5> сброшенным
• SCK (режим мастера) - бит TRISC<3> сброшен
• SCK (режим ведомого) - бит TRISC<3> установлен
• SS должен иметь бит TRISA<5> установленным.
Некоторые функции последовательного порта могут быть переопределены посредством программирования направления передачи
данных (регистры TRIS) в другую сторону, что нежелательно.

От себя добавлю, что в связи с изложенным выше, Вы, по всей вероятности, устраиваете маленький коротыш внутри кристалла.
Поэтому он и вылетает.

Сообщение отредактировал Прохожий - Sep 27 2009, 16:33
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 27 2009, 18:52
Сообщение #6


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Убрал из проекта библиотеку i2c и rts-ds1307, убрал все настройки ядра для i2c, остался только USATR. Запускаю - все работает. Добавляю библиотеки i2c и rts-ds1307, мзменяю процедуру инициализации ds1307 на

void ds1307_init(void)
{
char i;
i++;
i++;
i++;
i++;
i++;
i++;
}

добавляю ее в main(), запускаю и при прохождении i++;(2-й) прога вылетает на адрес 7F86.

Вот и думаб то-ли мой комп обкурился, то-ли я(. Вот где может быть трабла. Млгу выложить проект если нужно.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 27 2009, 19:16
Сообщение #7


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Kolia @ Sep 27 2009, 22:52) *
Убрал из проекта библиотеку i2c и rts-ds1307, убрал все настройки ядра для i2c, остался только USATR. Запускаю - все работает. Добавляю библиотеки i2c и rts-ds1307, мзменяю процедуру инициализации ds1307 на

void ds1307_init(void)
{
char i;
i++;
i++;
i++;
i++;
i++;
i++;
}

добавляю ее в main(), запускаю и при прохождении i++;(2-й) прога вылетает на адрес 7F86.

Че-то я нить потерял...
А нафига это все?
Локальная переменная... Многочисленное увеличение ее на 1...
Нннничего не понимаю...
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Sep 27 2009, 19:39
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Прохожий @ Sep 27 2009, 22:16) *
Че-то я нить потерял...
А нафига это все?
Локальная переменная... Многочисленное увеличение ее на 1...
Нннничего не понимаю...


Да вылетает он спонтанно... Кружит, пытается определится где лажа, а версию компилятора даже не указал...

OFF: Слышал, получил долгожданные PIC24... Поздравляю... rolleyes.gif
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 27 2009, 19:44
Сообщение #9


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Ну так для проверки. Получается что я не правильно подключил библиотеки, или в настройках компилятора что-то не указал. Почему-то компилятор загоняет на адресса 7D76 хотя с 0x0030 до 0x7D76 все свободно.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 27 2009, 19:50
Сообщение #10


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Kolia @ Sep 27 2009, 23:44) *
Ну так для проверки. Получается что я не правильно подключил библиотеки, или в настройках компилятора что-то не указал. Почему-то компилятор загоняет на адресса 7D76 хотя с 0x0030 до 0x7D76 все свободно.

Выходит так...
Только еще и компоновщик...
Честно говоря, я бортовую переферию инициализирую один раз в Startup-e. Ручками. Только то, чем потом буду пользоваться.
С учетом того, что все будет работать по прерываниям...
В связи с этим, готовыми функциями не пользуюсь, а прочтя Datasheet, делаю все самостоятельно.
Поверьте, это не сложно...
Может и Вам стоит попробовать?

Сообщение отредактировал Прохожий - Sep 27 2009, 19:55
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Sep 27 2009, 19:55
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Kolia @ Sep 27 2009, 22:44) *
Ну так для проверки. Получается что я не правильно подключил библиотеки, или в настройках компилятора что-то не указал. Почему-то компилятор загоняет на адресса 7D76 хотя с 0x0030 до 0x7D76 все свободно.


И чего ждём??? Когда телепаты из тёплых краёв клином прилетят???
Выкладывай что есть и подробно чем компилишь и т. д. ...
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 27 2009, 19:57
Сообщение #12


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(HHIMERA @ Sep 27 2009, 23:39) *
OFF: Слышал, получил долгожданные PIC24... Поздравляю... rolleyes.gif

Да.
Поэтому и говорю, что доступны они всем и каждому.
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 27 2009, 20:08
Сообщение #13


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Вот настройки компилятора PICC-18
-Zg4 -O -ASMLIST

Линкера PICC-18
-M"$(TARGETBASE).map" -O"$(TARGETBASE).cof" -O"$(TARGETBASE).hex"

Вот проект. Компилятор picc-18 9.50. IDE MPLAB 8.10.00.00. Программатор PICKit2.
Прикрепленные файлы
Прикрепленный файл  Pasteurisation.rar ( 87.67 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 27 2009, 20:12
Сообщение #14


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Kolia @ Sep 28 2009, 00:01) *
Вот настройки компилятора PICC-18
-Zg4 -O -ASMLIST

Я не силен в ключах PICC-18 (пользуюсь MCC18), но что-то мне подсказывает, что включена полная оптимизация.
При отладке делать этого не стоит...
Цитата(Kolia @ Sep 28 2009, 00:01) *
Линкера PICC-18
-M"$(TARGETBASE).map" -O"$(TARGETBASE).cof" -O"$(TARGETBASE).hex"

У линкера ничего интересного.
Go to the top of the page
 
+Quote Post
Kolia
сообщение Sep 27 2009, 20:24
Сообщение #15


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

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



отключил оптимизацию - все тоже самое(
Go to the top of the page
 
+Quote Post

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

 


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


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