|
|
  |
Silabs C8051F120 |
|
|
|
May 27 2015, 07:09
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Radik2 @ May 27 2015, 04:36)  Спасибо. Пока что результат тот же: на выводе Р0.0 3,3В, не происходит изменения выходного сигнала с "1" на "0". Прогнал код в отладчике. Дошел до while (1). Как я понял, судя по значению бита CP0EN, компаратор не активировался. Да, в CP0EN вообще ничего не записывается в Вашем коде, т.е. компаратор не активирован. Добавьте соотв. строчку в Comparator_Init(). Странно что конфигуратор от Silabs это сам не вставляет, а может так задумано? P.S. Пардон, бит CP0EN выставляется в Comparator_Init(), все нормально, но после строчки Код CPT0CN &= ~0x30; снова обнуляется. В чем замысел этого? Может предполагается, что разработчик включит компаратор позже в программе. В общем, после Comparator_Init() компаратор выключен.
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 27 2015, 07:19
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 27 2015, 12:09)  P.S. Пардон, бит CP0EN выставляется в Comparator_Init(), все нормально. Я уже не знаю в какую сторону "копать". Проблема в Keil или в МК.
|
|
|
|
|
May 27 2015, 07:31
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Сейчас разберемся. Прогнал в Keil, формально все работает, в смысле, регистры инициализируются как положено  Аппартно не могу проверить, у меня нет F120, есть F320, там вроде похоже. Закомментируйте вызов Interrupts_Init() если еще не сделали, чтоб с прерываниями не возиться.
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 27 2015, 07:57
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 27 2015, 12:31)  Сейчас разберемся. Прогнал в Keil, формально все работает, в смысле, регистры инициализируются как положено  Аппартно не могу проверить, у меня нет F120, есть F320, там вроде похоже. Закомментируйте вызов Interrupts_Init() если еще не сделали, чтоб с прерываниями не возиться. Хорошо. Вечером проверю дома в железе. Interrupts_Init() закомментировал сразу.
|
|
|
|
|
May 27 2015, 15:46
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 27 2015, 12:31)  Сейчас разберемся. Прогнал в Keil, формально все работает, в смысле, регистры инициализируются как положено  Аппартно не могу проверить, у меня нет F120, есть F320, там вроде похоже. Закомментируйте вызов Interrupts_Init() если еще не сделали, чтоб с прерываниями не возиться. Все также: компаратор не активируется ((
|
|
|
|
|
May 27 2015, 16:09
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Radik2 @ May 27 2015, 09:57)  Хорошо. Вечером проверю дома в железе. Interrupts_Init() закомментировал сразу. На своем "железе" с F320 проверил работоспособность компаратора. По регистрам там все аналогично F120 за исключением мультиплексирования по входам компаратора. Убедился что выход компаратора на пин порта срабатывает. Затем попробовал с прерыванием - тоже работает.
помигал светодиодом из прерывания Код // обработчик прерывания от Comp #0 void Comp0_Interrupt (void) interrupt 12 { if (CPT0CN & 0x20) { // rising-edge CPT0CN &= ~0x20; // сбрасываем CP0RIF P0 = 1; // вкл СД }; if (CPT0CN & 0x10) { // falling-edge CPT0CN &= ~0x10; // сбрасываем CP0FIF P0 = 0; // выкл СД } }
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 27 2015, 16:48
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 27 2015, 21:09)  На своем "железе" с F320 проверил работоспособность компаратора. По регистрам там все аналогично F120 за исключением мультиплексирования по входам компаратора. Убедился что выход компаратора на пин порта срабатывает. Затем попробовал с прерыванием - тоже работает. }[/code] А на вкладке компаратора что выводит?
Эскизы прикрепленных изображений
|
|
|
|
|
May 27 2015, 19:56
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Radik2 @ May 27 2015, 18:48)  А на вкладке компаратора что выводит? Странно, что у Вас после присвоения Код CPT0CN = 0x85; регистр в нуле, если верить кейлу. У меня такого не наблюдается. Может какие-то проблемы с отладчиком? Файл заголовка вида c8051fxxx_defs.h точно от Вашего МК?
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 28 2015, 02:33
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 28 2015, 00:56)  Странно, что у Вас после присвоения Код CPT0CN = 0x85; регистр в нуле, если верить кейлу. У меня такого не наблюдается. Может какие-то проблемы с отладчиком? Файл заголовка вида c8051fxxx_defs.h точно от Вашего МК? Да, от моего МК. Если в коде указываю C8051F120_defs.h, то Keil выдавал ошибку. С C8051F120.h все компилируется нормально, без ошибок и warning. Может снести Keil и заново установить. Возможно, что где-то настройки некорректные. Но в этом я не силен. Что странно, при пошаговой отладке светодиод "Run/Stop" в программаторе горит не зеленым цветом, другим: вроде красным.
|
|
|
|
|
May 28 2015, 07:18
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Radik2 @ May 28 2015, 04:33)  Да, от моего МК. Если в коде указываю C8051F120_defs.h, то Keil выдавал ошибку. С C8051F120.h все компилируется нормально, без ошибок и warning. я спросил, т.к. думал может у Вас по случайности от другого МК файл стоит... Цитата(Radik2 @ May 28 2015, 04:33)  Может снести Keil и заново установить. Возможно, что где-то настройки некорректные. Но в этом я не силен. Ну зачем сносить кейл, если все работало с программой по тестированию UART? Там, если не ошибаюсь заинклюден c8051f120.h, т.е. файл заголовков, который есть где-то у Кейла в подддиректориях. C8051F120_defs.h откуда-то у меня появился, они должны быть одинаковыми, там же просто объявления регистров и RAM. В конце концов, раз программа с UART бегала, то проблема не в этом. Цитата(Radik2 @ May 28 2015, 04:33)  Что странно, при пошаговой отладке светодиод "Run/Stop" в программаторе горит не зеленым цветом, другим: вроде красным. по-моему так и должно быть в пошаговом режиме, если это оригинальный силабовский (или копия). У меня старая версия Keil посему таких продвинутых окон типа детальный просмотр установок компараторов (как Вы привели) нет, в обычном watch'е регистр CPT0CN обновляется. Может проблемы с самим отладочиком? Бывают глюки и у силабса, тут где-то была тема. Если запустить в эмуляторе программу, как себя ведет? В Keil можете выбрать в чем делать Debug: на таргете или в эмуляторе 51.
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 28 2015, 07:44
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 28 2015, 12:18)  Ну зачем сносить кейл, если все работало с программой по тестированию UART? Там, если не ошибаюсь заинклюден c8051f120.h, т.е. файл заголовков, который есть где-то у Кейла в подддиректориях. Этот файл был в папке с примерами для этого МК. С UART все было в порядке. Т.е. в железе работало. В отладчике не помню, вроде не проверял. Цитата(alexunder @ May 28 2015, 12:18)  C8051F120_defs.h откуда-то у меня появился, они должны быть одинаковыми, там же просто объявления регистров и RAM. В конце концов, раз программа с UART бегала, то проблема не в этом. C8051F120_defs.h вроде для SiliconLabs IDE. Цитата(alexunder @ May 28 2015, 12:18)  по-моему так и должно быть в пошаговом режиме, если это оригинальный силабовский (или копия). У меня китайская копия с 8051F320 внутри. Что интересно. При работе с SiliconLabs IDE в программатор заливается одна прошивка. При работе с Keil - другая. Тупик ...
Сообщение отредактировал Radik2 - May 28 2015, 07:45
|
|
|
|
|
May 28 2015, 07:50
|

unexpected token
   
Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987

|
Цитата(Radik2 @ May 28 2015, 09:44)  Этот файл был в папке с примерами для этого МК. С UART все было в порядке. Т.е. в железе работало. В отладчике не помню, вроде не проверял. прогоните просто в симуляторе 51, если при этом регистр себя нормально ведет (выведите его в отдельное окно Watch: меню View->Watch windows->Watch), то с программой все нормально и она должна работать в МК. Если без отладчика на МК не наблюдается адекватной работы, то тогда уж можно грешить на компаратор, хотя я сильно сомневаюсь что он каза болду.
--------------------
А у тебя SQUID, и значит, мы умрем.
|
|
|
|
|
May 28 2015, 07:54
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 28 2015, 12:50)  прогоните просто в симуляторе 51, если при этом регистр себя нормально ведет (выведите его в отдельное окно Watch: меню View->Watch windows->Watch), то с программой все нормально и она должна работать в МК. Если без отладчика на МК не наблюдается адекватной работы, то тогда уж можно грешить на компаратор, хотя я сильно сомневаюсь что он каза болду. Хорошо. Вечером попробую. Спасибо за помощь!
|
|
|
|
|
May 28 2015, 08:09
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 10-03-07
Из: Уфа
Пользователь №: 26 030

|
Цитата(alexunder @ May 28 2015, 13:02)  Вот еще копия экрана после инициализации известного регистра:
все как положено. У Вас uVision 4. И "проглатывает" файлы для SiliconLabs IDE. У меня uVision 5 выдает кучу ошибок с этими include.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|