Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » посмотрите чет не работает в протеусе


посмотрите чет не работает в протеусе

Сообщений 1 страница 5 из 5

1

добрый день подскажите в симуляторе bascom работает а в протеусе не хотит
поидее это включение вентилятора на три скорости

Код:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
'$sim


 Config Debounce = 75                                       'задержка входного сигнала
 Config Portd.1 = Output                                    'конфигурирование выводов на выход
 Config Portd.2 = Output
 Config Portd.3 = Output
 Config Portd.4 = Input                                     'конфигурирование выводов на вход
 Config Portd.5 = Input
 Config Portd.6 = Input
 'Config Int0 = Falling                                      'внешнее прерывание по спаду импульса

  Ddrd = &B00001111                                         'PB4...PB7 -входы,остальные - выходы
  Portd = &B11111111                                        'подтяжка PB0...PB3

  Dim Wtime As Byte
  Dim Wtime1 As Byte
  Wtime = 100
   Wtime1 = 10
  'On Int0 Buton
 ' Enable Interrupts                                         'разрешение прерываний
 ' Enable Int0
 Reset Portd.1
 Reset Portd.2
 Reset Portd.3
  Do

 If Portd.4 < 1 Then                                        'определение  нажатой кнопки
 Waitms Wtime                                               'время на дребезг
If Portd.4 < 1 Then                                          'определение  нажатой кнопки
 Set Portd.1                                                'если нажата то торт d 1 нога  вкл
 Reset Portd.2                                              'остальные выкл
 Reset Portd.3
Else
 End If

 End If

    If Portd.5 < 1 Then                                      'определение  надребезгжатой кнопки
Waitms Wtime                                                 'время на
  If Portd.5 < 1 Then                                       'определение  нажатой кнопки
 Set Portd.2                                                'если нажата то торт d 2 нога  вкл
 Reset Portd.1                                               'остальные выкл
 Reset Portd.3
Else
 End If

 End If

   If Portd.6 < 1 Then
 Waitms Wtime1
 If Portd.6 < 1 Then
 Waitms Wtime1
 Set Portd.3
 Reset Portd.2
 Reset Portd.1
Else
 End If

 End If

  If Portd.7 < 1 Then
 Waitms Wtime
 If Portd.7 < 1 Then
 Waitms Wtime1
 Reset Portd.1
 Reset Portd.2
 Reset Portd.3
Else
 End If

 End If

 Loop
  End

еще есть файл протеуса ток чет не могу втыкнутьего сюда

0

2

Но я входы указываю как PIN, процедуру считывания состояния входов вызываю таймером и для дребезга юзаю таймеры. И не когда не юзаю Wait. А еще я всегда начинаю проект с пары строк (ставлю несколько выходов на 1 и если на них высокий значит норма). В протеусе наступал на грабли с настройкой в свойствах недавно с UART был косяк хотя всё работало.
Еще можно юзать UART для отладки в протеусе тоже не плохо идёт.
Я конечно сам не давно прогю контроллеры но уточню не работает вообще МК или код работает криво?
Но код простой как пробка по логике работать должен.

0

3

а зачем писать это:

Config Portd.1 = Output                                    'конфигурирование выводов на выход
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Input                                     'конфигурирование выводов на вход
Config Portd.5 = Input
Config Portd.6 = Input

и это?

  Ddrd = &B00001111                                         'PB4...PB7 -входы,остальные - выходы (тут все же о PortD идет речь)

0

4

опечатка просто насчет порта в

0

5

переписал терь все работае т в протеусе

Код:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
$sim


 Config Debounce = 75                                       'çàäåðæêà âõîäíîãî ñèãíàëà
 Config Portd.1 = Output                                    'êîíôèãóðèðîâàíèå âûâîäîâ íà âûõîä
 Config Portd.2 = Output
 Config Portd.3 = Output
 Config Pind.4 = Input                                      'êîíôèãóðèðîâàíèå âûâîäîâ íà âõîä
 Config Pind.5 = Input
 Config Pind.6 = Input
 Portd = &B11110000
 Dim Wtime As Byte
 Dim Wtime1 As Byte
 Wtime = 100
 Wtime1 = 10

 Btn Alias Pind.4                                           ' êíîïêà âûêë
 Btn1 Alias Pind.5                                          ' êíîïêà 1 ñêîðîñòü
 Btn2 Alias Pind.6                                          ' êíîïêà 2 ñêîðîñòü
 Btn3 Alias Pind.7                                          ' êíîïêà 3 ñêîðîñòü


 Rab:
 Do

 If Btn < 1 Then
  Waitms Wtime
   If Btn < 1 Then
    Waitms Wtime1
   Goto Otkl
   Else
   End If
   End If
   If Btn1 < 1 Then
  Waitms Wtime
   If Btn1 < 1 Then
    Waitms Wtime1
   Goto Vkl1
  Else
   End If
   End If
  If Btn2 < 1 Then
  Waitms Wtime
   If Btn2 < 1 Then
    Waitms Wtime1
   Goto Vkl2
  Else
   End If
    End If
   If Btn3 < 1 Then
  Waitms Wtime
   If Btn3 < 1 Then
    Waitms Wtime1
   Goto Vkl3
  End If
  End If
Loop

Otkl:
Reset Portd.1
 Reset Portd.2
 Reset Portd.3
 Goto Rab
 Return

Vkl1:
Set Portd.1
 Reset Portd.2
 Reset Portd.3
 Goto Rab
 Return

Vkl2:
 Reset Portd.1
 Set Portd.2
 Reset Portd.3
 Goto Rab
 Return

  Vkl3:
 Reset Portd.1
 Reset Portd.2
 Set Portd.3
 Goto Rab
 Return
 End

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » посмотрите чет не работает в протеусе