Страница 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? а то как-то не понравилась мне эта.. :wink:

Re: Не работает Hello World

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

Re: Не работает Hello World

Добавлено: Пн дек 01, 2014 16:26:58
Мурик
Народ, что за глупости пишите? :facepalm: Зачем советовать переходить на другой ЯП если проблема не в ЯП и не в коде, а в руках... :solder:
Код рабочий. Протеус это подтверждает.

Re: Не работает Hello World

Добавлено: Пн дек 01, 2014 17:46:01
COKPOWEHEU
Потому что лучше сразу привыкать к нормальному стилю программирования.