Страница 1 из 1
Не работает Hello World
Добавлено: Вт ноя 25, 2014 14:38:57
Ley
Привет всем!
Итак, программка управления светодиодом по кнопке
Есть код раз:
Код: Выделить всё
$regfile = «m8def.dat»
$crystal = 1000000
Config Portb.6 = Output
Config Pinb.1 = Input
Do
If Pinb.1 = 1 Then
Reset Portb.6
End If
If Pinb.1 = 0 Then
Set Portb.6
End If
Loop
И код два:
Код: Выделить всё
$regfile = «m8def.dat»
$crystal = 1000000
Config Portb.6 = Output
Config Pinb.1 = Input
Do
If Pinb.1 = 0 Then
Reset Portb.6
End If
If Pinb.1 = 1 Then
Set Portb.6
End If
Loop
Они отличаются только инверсией, т. е. в первом случае при нажатии кнопки светодиод загорается, во втором - погасает
Почему первый работает, а второй нет? Что за напасть?
Re: Не работает Hello World
Добавлено: Вт ноя 25, 2014 15:09:55
Gudd-Head
Что за чудной язык?
Код: Выделить всё
Config Portb.6 = Output
Config Pinb.1 = Input
Странно, что на ВЫХОД вы определяете ПОРТ, а на вход — РЕГИСТР. По мне так логичнее было бы
Код: Выделить всё
Config Portb.6 = Output
Config Portb.1 = Input
...
If Pinb.1 = 1 Then
Re: Не работает Hello World
Добавлено: Вт ноя 25, 2014 15:11:58
Ley
Bascon AVR
Не знаю, в примерах так было
Re: Не работает Hello World
Добавлено: Вт ноя 25, 2014 15:19:06
Gudd-Head
Чой-то у вас по смыслу лишний ИФ. Здесь всего 2 варианта кнопки, так что можно обойтись одним ИФ...ЕЛСЕ.
Re: Не работает Hello World
Добавлено: Вт ноя 25, 2014 17:33:05
COKPOWEHEU
Gudd-Head писал(а):Что за чудной язык?
Странно, что на ВЫХОД вы определяете ПОРТ, а на вход — РЕГИСТР. По мне так логичнее было бы
Еще логичнее было бы для управления вход-выход управлять DDRB, который для этого и предназначен. DDRB = (1<<6); или, если гугль не обманывает с синтаксисом этого бейсика, DDRB = 01000000
Со "странным языком" и "лишним ифом" согласен. Вообще, не понимаю, зачем писать под контроллеры на бейсике.
Ley, пошаговую отладку не делал? Как подключена кнопка? Где проверялось, во встроенном отладчике, протеусе или железе?
Re: Не работает Hello World
Добавлено: Ср ноя 26, 2014 11:09:18
Ley
Все делал по 100% рабочей схеме из источника. Тестировал на железе.
И вот еще что: светодиод после прошивки второй схемы просто начинает светиться, а на нажатия не реагирует!
Может быть порекомендуете среду разработки получше, чем Bascom? а то как-то не понравилась мне эта..

Re: Не работает Hello World
Добавлено: Ср ноя 26, 2014 11:29:25
Engineer_Keen
Ley писал(а):Может быть порекомендуете среду разработки получше, чем Bascom? а то как-то не понравилась мне эта..

Родная AVR Studio 4 (или новая, но жирная и тормознутая Atmel Studio) вполне удобная, там же и просимулировать можно. Но языка всего два - ассемблер или Си.
Re: Не работает Hello World
Добавлено: Пн дек 01, 2014 16:26:58
Мурик
Народ, что за глупости пишите?

Зачем советовать переходить на другой ЯП если проблема не в ЯП и не в коде, а в руках...
Код рабочий. Протеус это подтверждает.
Re: Не работает Hello World
Добавлено: Пн дек 01, 2014 17:46:01
COKPOWEHEU
Потому что лучше сразу привыкать к нормальному стилю программирования.