|
C8051F320, Отладочный набор |
|
|
|
Nov 26 2010, 11:24
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Есть отладочный набор C8051F32X DEVELOPMENT KIT ,у сего девайся на порт 2 подключены на пин0 и пин1 две кнопочки и на пины 2,3 светодиоды.имею простую задачку зажигать диод при нажатии(компилятор IAR) Код /----------------------------------------------------------------------------- #include <ioC8051f320.h> // SFR declarations #include <intrinsics.h> //----------------------------------------------------------------------------- // 16-bit SFR Definitions for 'F32x //-----------------------------------------------------------------------------
__sfr __no_init volatile unsigned short TMR2RL @ 0xCA; // Timer2 reload value __sfr __no_init volatile unsigned short TMR2 @ 0xCC; // Timer2 counter
//----------------------------------------------------------------------------- // Global CONSTANTS //-----------------------------------------------------------------------------
#define SYSCLK 24500000 / 8 // SYSCLK frequency in Hz
#define LED P2_bit.P22 // LED='1' means ON #define SW2 P2_bit.P0 // SW2='0' means switch pressed
//----------------------------------------------------------------------------- // Function PROTOTYPES //----------------------------------------------------------------------------- void SYSCLK_Init (void); void PORT_Init (void); void Timer2_Init (int counts); __interrupt void Timer2_ISR (void);
//----------------------------------------------------------------------------- // MAIN Routine //----------------------------------------------------------------------------- void main (void) {
// disable watchdog timer PCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer // enable)
SYSCLK_Init (); // Initialize system clock to // 24.5MHz PORT_Init (); // Initialize crossbar and GPIO
while (1) { if (!P2_bit.P20) {P2_bit.P22&=0x01;} else {P2_bit.P22==0x00;}; if (!P2_bit.P21) {P2_bit.P23&=0x01;} else {P2_bit.P23==0x00;};// код мигания } }
//----------------------------------------------------------------------------- // SYSCLK_Init //----------------------------------------------------------------------------- // // This routine initializes the system clock to use the internal 24.5MHz / 8 // oscillator as its clock source. Also enables missing clock detector reset. // void SYSCLK_Init (void) { OSCICN = 0x80; // configure internal oscillator for // its lowest frequency RSTSRC = 0x08; // enable missing clock detector }
void PORT_Init (void) { XBR0 = 0x00; XBR1 = 0x40; P2 &= 0x03; // настраиваем пины 0 и 1 на вход P2MDOUT |= 0x0C; // обозначаем выход для пинов на которых диоды P2_bit.P22&=0x00; //гасим загорающиеся диоды P2_bit.P23&=0x00; //гасим загорающиеся диоды } Однако условия не выполняются,независимо от того нажата кнопка или нет,такое ощущения что эти пины не настроились на ввод.Ошибка в коде?
|
|
|
|
|
 |
Ответов
|
Nov 26 2010, 15:51
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(barabek @ Nov 26 2010, 15:08)  В IAR не работал. Какие-то конструкции совершенно для Keil не знакомые. Не важно. Что конкретно не работает? Что отладчик дает? После настройки порта,диоды загораются,далее их гашу,по конструкции в цикле while(1) должно быть если уровень на пине 0 и 1 низкий то загораются соответственно диоды на пинах 2.2 2.3,но после перехода на тело основного цикла независимо от состояния на пине 0или1,те по условию else вообще не переходит,но и после проверки состояния пина,прыгает на выполнение Код P2_bit.P22&=0x01 но диод не загорается
|
|
|
|
|
Nov 26 2010, 16:57
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(evsx1 @ Nov 26 2010, 18:51)  Код P2_bit.P22&=0x01 но диод не загорается Наверное, нужно приравнять единице (т.е. убрать &). Цитата(evsx1 @ Nov 26 2010, 19:42)  равняем бит с единичкой,что нам это мешает сделать,здесь не принципиально присваивание или приравнивание О-па! Что это - вдруг: "не принципиально"? Еще как - принципиально!
|
|
|
|
Сообщений в этой теме
evsx1 C8051F320 Nov 26 2010, 11:24   evsx1 Цитата(Палыч @ Nov 26 2010, 19:57) Наверн... Nov 26 2010, 17:08 kosyak© Цитата(evsx1 @ Nov 26 2010, 14:24) ...
... Nov 26 2010, 16:35 evsx1 Цитата(kosyak© @ Nov 26 2010, 19:35) Поче... Nov 26 2010, 16:42 kosyak© У Вас случаем компилятор этот кусок кода не выкину... Nov 26 2010, 16:52 kosyak© Код вообще не понятный. сам для х51 на ИАр никогда... Nov 26 2010, 17:09 evsx1 в данном случае меня интересуют настройки порта,по... Nov 26 2010, 17:57 Палыч Цитата(evsx1 @ Nov 26 2010, 20:57) ...исп... Nov 26 2010, 20:22  barabek Цитата(Палыч @ Nov 27 2010, 06:22) Нужно ... Nov 27 2010, 01:15  evsx1 Цитата(Палыч @ Nov 26 2010, 23:22) Нужно ... Nov 27 2010, 11:26   Палыч Цитата(evsx1 @ Nov 27 2010, 14:26) не пон... Nov 27 2010, 16:38 kosyak© В 51 есть возможность оперировать битами. т.е. Что... Nov 26 2010, 18:28 Sujan Цитата(evsx1 @ Nov 27 2010, 13:26) Вот,в ... Nov 28 2010, 12:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|