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

 
 
> Вопрос к профи
Sergey Abaev
сообщение Jan 23 2014, 13:14
Сообщение #1


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Есть вот такая маленькая программа, все отлично компилируется, но!

1. Заливаем в LPC2214, запускаем и затем все начинает на плате моргать (как и должно)
по через 10-15 секунд (время разное) как бы все зависает!

ПЕРИОДЫ ПЕРЕКЛЮЧЕНИЯ НЕ РАВНЫЕ, КАК БУДТО АРМ ПРИТОРМАЖИВАЕТ!

ПОЧЕМУ???? ЭТО ARM НЕ МОЖЕТ СПРАВИТЬСЯ С ЗАДАЧЕЙ???

Я В ARM НОВИЧОК, НО В ATMEGAX Я ТАКОГО ТУПИЗМА НЕ ВИДЕЛ! АРМ ВООБЩЕ СТРАННЫЙ ДЕВАЙС.

ПОДСКАЖИТЕ, ЧТО НЕ ТАК?

2. ЕЩЕ КОГДА ПОДАЮ ПИТАНИЕ, ВЫПОЛНЕНИЕ ПРОГРАММЫ В АРМЕ МОЖЕТ СРАЗУ ЗАПУСТИТЬСЯ, А МОЖЕТ НЕТ (
ПОМОГАЕТ ЕЩЕ РАЗ ПЕРЕЗАПУСК ПИТАНИЯ ИЛИ НОЖКА RESET

ВООБЩЕ ВСЕ СТРАННО! КАКОЕ ТО К АРМАМ ПЕРВОЕ ВПЕЧАТЛЕНИЕ - ГО..НО! НО НЕ МОЖЕТ ВЕДЬ ТАКОГО БЫТЬ????

ГДЕ ЛОГИКА?

ВСЕ КОМПИЛИЛ В KEIL UVISION 5.XX

Код
#include "lpc22xx_keil.h"

#define STATUS_LED        20 // P0 (STATUS LED)

#define RELAY1                16 // P1 (GPIO 9)
#define RELAY2                25 // P3 (GPIO 10)
#define RELAY3                24 // P3 (GPIO 11)
#define RELAY4                25 // P1 (GPIO 12)
#define RELAY5                24 // P1 (GPIO 13)
#define RELAY6                23 // P1 (GPIO 14)
#define RELAY7                12 // P0 (GPIO 15)
#define RELAY8                22 // P1 (GPIO 16)

#define INOUT1                21 // P0 (GPIO 0)
#define INOUT2                22 // P0 (GPIO 1)
#define INOUT3                23 // P0 (GPIO 2)
#define INOUT4                19 // P1 (GPIO 3)
#define INOUT5                24 // P0 (GPIO 4)
#define INOUT6                18 // P1 (GPIO 5)
#define INOUT7                25 // P0 (GPIO 6)
#define INOUT8                17 // P1 (GPIO 7)
#define INOUT9                26 // P3 (GPIO 8)

static void delay(void )
{
    volatile int i,j;

    for (i=0;i<1000;i++)
        for (j=0;j<1000;j++);
}
  
int main(void)
{
    MAMCR = 2;    

    IODIR0 |= (1<<STATUS_LED) | (1<<RELAY7) | (1<<INOUT1) | (1<<INOUT2) | (1<<INOUT3) | (1<<INOUT5) | (1<<INOUT7);
    IODIR1 |= (1<<RELAY1) | (1<<RELAY4) | (1<<RELAY5) | (1<<RELAY6) | (1<<RELAY8) | (1<<INOUT4) | (1<<INOUT6) | (1<<INOUT8);     
    IODIR3 |= (1<<RELAY2) | (1<<RELAY3) | (1<<INOUT9);     
    
    while (1)    
    {
        IOCLR0 |= (1<<STATUS_LED) | (1<<RELAY7) | (1<<INOUT1) | (1<<INOUT2) | (1<<INOUT3) | (1<<INOUT5) | (1<<INOUT7);
        IOCLR1 |= (1<<RELAY1) | (1<<RELAY4) | (1<<RELAY5) | (1<<RELAY6) | (1<<RELAY8) | (1<<INOUT4) | (1<<INOUT6) | (1<<INOUT8);     
        IOCLR3 |= (1<<RELAY2) | (1<<RELAY3) | (1<<INOUT9);     
        delay();
        IOSET0 |= (1<<STATUS_LED) | (1<<RELAY7) | (1<<INOUT1) | (1<<INOUT2) | (1<<INOUT3) | (1<<INOUT5) | (1<<INOUT7);
        IOSET1 |= (1<<RELAY1) | (1<<RELAY4) | (1<<RELAY5) | (1<<RELAY6) | (1<<RELAY8) | (1<<RELAY8) | (1<<INOUT4) | (1<<INOUT6) | (1<<INOUT8);         
        IOSET3 |= (1<<RELAY2) | (1<<RELAY3) | (1<<INOUT9);     
        delay();
    }
}


Сообщение отредактировал Sergey Abaev - Jan 23 2014, 13:24
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
OlegH
сообщение Jan 23 2014, 13:27
Сообщение #2


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

Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168



Похоже, к выходам контроллера реле подключены ? а каким образом то ?
Go to the top of the page
 
+Quote Post
coolbassnik
сообщение Jan 23 2014, 13:29
Сообщение #3


Участник
*

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



Может вывод RESET не подтянут должным образом ?
Вот тут как-то странно написан код:
Код
static void delay(void )
{
    volatile int i,j;

    for (i=0;i<1000;i++)
        for (j=0;j<1000;j++);
}

Может нужно инициализировать переменные и второй цикл FOR взять в фигурные скобки laughing.gif Хотя по идее если ошибок не выдает то должно и так работать.

Сообщение отредактировал coolbassnik - Jan 23 2014, 13:34
Go to the top of the page
 
+Quote Post
Sergey Abaev
сообщение Jan 23 2014, 13:31
Сообщение #4


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Цитата(OlegH @ Jan 23 2014, 17:27) *
Похоже, к выходам контроллера реле подключены ? а каким образом то ?



ТАМ НА САМОМ ДЕЛЕ НЕ РЕЛЕ, А ТРАНЗИТОР 2803.

РЕЛЕ БЫЛО РАНЬШЕ И ТОЖЕ ЧЕРЕЗ ТРАНЗИСТОР.


НЕ ДОГОНЯЮ ПОЧЕМУ ВИСИТ ГАДСКИЙ АРМ

Цитата(coolbassnik @ Jan 23 2014, 17:29) *
Может вывод RESET не подтянут должным образом ?


ПОДТЯНУТ, ТАМ СУПЕРВИЗОР СТОИТ.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
DASM
сообщение Jan 23 2014, 13:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



КАКОЕ ТО К АВТОРУ ПЕРВОЕ ВПЕЧАТЛЕНИЕ - ГО..НО!
Можно не кричать вообще капс-локом то, а ?
Go to the top of the page
 
+Quote Post
coolbassnik
сообщение Jan 23 2014, 13:36
Сообщение #6


Участник
*

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



На транзистор ток ограничиваете в базу или это полевик ?
Вообще в ARM-ах все немного подругому чем в AVR, по идее вам нужно сначала проинициализировать периферию, включить тактирование на шинах, настроить PLL и тому подобные вещи. Тут скорей не в АРМах дело, а в правильном подходе к вопросу.

Сообщение отредактировал coolbassnik - Jan 23 2014, 13:41
Go to the top of the page
 
+Quote Post
Sergey Abaev
сообщение Jan 23 2014, 13:40
Сообщение #7


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Цитата(coolbassnik @ Jan 23 2014, 17:36) *
На транзистор ток ограничиваете в базу или это полевик ?


Полевик.


Я поставил задерку delay больше, теперь работает в такт и не зависает. А нееет завис!!!!!!!!!!!!!!! (пока на форум писал)

Может быть такое, что когда быстро и разом все включается/выключается, то питание просидает и выбивает арм?

Арм сильно критичен к питанию?

Цитата(DASM @ Jan 23 2014, 17:32) *
КАКОЕ ТО К АВТОРУ ПЕРВОЕ ВПЕЧАТЛЕНИЕ - ГО..НО!
Можно не кричать вообще капс-локом то, а ?



Извините, если обидел фанатов АРМа!

Сообщение отредактировал Sergey Abaev - Jan 23 2014, 13:43
Go to the top of the page
 
+Quote Post
sadat
сообщение Jan 23 2014, 14:26
Сообщение #8


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

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Релюшки, надеюсь, диодами зашунтированы? Что коммутируют релюшки?
Все же посоветовал бы развязывать сигналы ограничительными 330 Ом - 1 кОм резисторами.
Конденсаторы по питанию АРМ есть?
Напряжение питания АРМ какое?

(В общем, тема для ветки "Для новичков")
Go to the top of the page
 
+Quote Post
Sergey Abaev
сообщение Jan 23 2014, 14:30
Сообщение #9


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Цитата(sadat @ Jan 23 2014, 18:26) *
Релюшки, надеюсь, диодами зашунтированы? Что коммутируют релюшки?
Все же посоветовал бы развязывать сигналы ограничительными 330 Ом - 1 кОм резисторами.
Конденсаторы по питанию АРМ есть?
Напряжение питания АРМ какое?

(В общем, тема для ветки "Для новичков")


"диодами зашунтированы?" - да
"Что коммутируют релюшки" - ток не более 200мА

кондеры есть, питание 3.3В
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 23 2014, 14:32
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а еще поглядеть бы хорошо, не отрубается ли ПЛЛ, и не вылетаете ли вы по этому поводу в какой нибудь могучее прерывание все сломалось...
Go to the top of the page
 
+Quote Post
sadat
сообщение Jan 23 2014, 14:40
Сообщение #11


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

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



"Фото платы в студию" ©.....
да и схемку-то целиком неплохо... А то телепаты водятся на другом форуме :-)
Go to the top of the page
 
+Quote Post
Sergey Abaev
сообщение Jan 23 2014, 14:50
Сообщение #12


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Цитата(sadat @ Jan 23 2014, 18:40) *
"Фото платы в студию" ©.....
да и схемку-то целиком неплохо... А то телепаты водятся на другом форуме :-)



Прикрепленное изображение


Цитата(sadat @ Jan 23 2014, 18:40) *
"Фото платы в студию" ©.....
да и схемку-то целиком неплохо... А то телепаты водятся на другом форуме :-)



У меня задача такая, нужно написать программку для тестирования всех GPIO, чтобы моргало.

Возможно в моем исходнике еще, что-то не хватает. Т.к. я не силен в АРМе, я кое как написал нечто.

Но это нечно:
1. не запускается когда подаю питание! только ножка ресет заставляет запуститься программу
2. иногда она виснет!

вот и все задача.

При этом оригинальная прошивка, которая будет стоять на этом арме - работает отлично и без отказно (ее писал не я)
Go to the top of the page
 
+Quote Post
sadat
сообщение Jan 23 2014, 14:52
Сообщение #13


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

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Ясно - какая-то демо-плата, к ней прицеплена обвязка из непонятно-чего...
Первым делом в разрыв проводов управления добавить 1 кОм резистор, лучше - ближе к плате, чтобы проводки "антеннами" не работали.
Что там с питанием проца - по схеме не видно источников 3v3 и 1v8? Ну, думаю, на плате все развели и надо подать только чистое 5в, так? Ну и, логично, что к этому чистому 5в подцеплены 5в релюшки?

upd.
Так это все (пред.сообщение ТС) надо было бы и написать в первом сообщении. Тут "быстрая помощь" не придет, надо перелопатить определенное количество источников знаний (книги, форум, исходники), чтобы добиться идеально рабочего устройства.
Если есть исходники рабочей программы - то лучше в них и "ковыряться"...
Go to the top of the page
 
+Quote Post
Sergey Abaev
сообщение Jan 23 2014, 16:02
Сообщение #14


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

Группа: Участник
Сообщений: 91
Регистрация: 4-01-10
Из: Москва
Пользователь №: 54 631



Цитата(sadat @ Jan 23 2014, 18:52) *
Ясно - какая-то демо-плата, к ней прицеплена обвязка из непонятно-чего...
Первым делом в разрыв проводов управления добавить 1 кОм резистор, лучше - ближе к плате, чтобы проводки "антеннами" не работали.
Что там с питанием проца - по схеме не видно источников 3v3 и 1v8? Ну, думаю, на плате все развели и надо подать только чистое 5в, так? Ну и, логично, что к этому чистому 5в подцеплены 5в релюшки?

upd.
Так это все (пред.сообщение ТС) надо было бы и написать в первом сообщении. Тут "быстрая помощь" не придет, надо перелопатить определенное количество источников знаний (книги, форум, исходники), чтобы добиться идеально рабочего устройства.
Если есть исходники рабочей программы - то лучше в них и "ковыряться"...



Да нет, исходник тут простой, нужна программа типа BlinkLed

Но как ее грамотно под АРМ написать?

Я в начале поста выложил свое творение, но возможно, что это коряво!

Вот и хочется помощи от АРМщиков, помогите написать блинк лед, хотя бы на один канал. Далее я сам размножу.

Должно быть типа этого:

....
while (1)
{
delay(); //1 сек
LED=1; // P0.20
delay() //1 сек
LED=0 // P0.20
}
....
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Jan 23 2014, 16:08
Сообщение #15


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(Sergey Abaev @ Jan 23 2014, 11:02) *
Но это нечно:
1. не запускается когда подаю питание! только ножка ресет заставляет запуститься программу
2. иногда она виснет!
....

Как-то у меня процессор не запускался при подаче питания, потому что напряжение питания при включении нарастало слишком медленно. Не помню, насколько медленно.


--------------------
ASB
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:13
Рейтинг@Mail.ru


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