roboforum.ru

Технический форум по робототехнике.

Программа

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Программа

Сообщение P_Ruslan » 10 июн 2012, 01:39

Очередная проблема — код прошивки. Proteus и AtTiny13 выдают "смертельную ошибку" при прошивки этим текстом:
Код: Выделить всёРазвернуть
$regfile = "Attiny13.dat"
$crystal = 1000000

Config Portb.3 = Output
Config Portb.2 = Output
Config Portb.1 = Output
Config Portb.0 = Output
Config Pinb.4 = Input
Dim Pv As Bit
Dim Vv As Bit

Pv = 0
Vv = 0
Do
If Pv = 0 Then
If Vv = 0 Then
Portb.0 = 0
Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
  If Pinb.4 = 0 Then
  Pv = 1
  End If
  End If
End If

If Pv = 1 Then
If Vv = 0 Then
  Portb.3 = 0
  Waitms 4
  Portb.2 = 1
  Waitms 4
  Portb.1 = 1
  Waitms 4
  Portb.2 = 0
  Waitms 4
  Portb.0 = 1
  Waitms 4
  Portb.1 = 0
  Waitms 4
  Portb.3 = 1
  Waitms 4
  Portb.0 = 0
  Waitms 4
  Portb.2 = 1
  Waitms 4
   If Pinb.4 = 0 Then
   Vv = 1
   End If
End If
End If

If Pv = 1 Then
If Vv = 1 Then
  Portb.3 = 0
  Waitms 4
  Portb.2 = 1
  Waitms 4
  Portb.1 = 1
  Waitms 4
  Portb.2 = 0
  Waitms 4
  Portb.0 = 1
  Waitms 4
  Portb.1 = 0
  Waitms 4
  Portb.3 = 1
  Waitms 4
  Portb.0 = 0
  Waitms 4
  Portb.2 = 1
  Waitms 20
   If Pinb.4 = 0 Then
   Vv = 0
   Pv = 0
   End If
End If
End If
Loop


P.S. Простите за тафтологию в тексте кода. Принцип такой, при нажатии кнопки переключаются режимы шаговика.
Последний раз редактировалось P_Ruslan 16 июн 2012, 12:32, всего редактировалось 1 раз.
Аватара пользователя
P_Ruslan
 
Сообщения: 94
Зарегистрирован: 12 июл 2011, 00:49
Откуда: Лебедин, Сумская обл. Украина
Skype: PoRuVl
прог. языки: Basic (VB, Blitz), Pascal, Delphi 7, C++
ФИО: Пономаренко Руслан Владимирович

Re: Программа

Сообщение Madf » 13 июн 2012, 15:00

Вы таблицу истинности нарисуйте ваших Pv и Vv, когда и какие события происходят. Сдается алгоритм ошибочен.
А вообще что за такое "смертельную ошибку"? Компилятор баскома выдает или кто?
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Программа

Сообщение P_Ruslan » 14 июн 2012, 00:51

Pv и Vv: Если оба 1 то шаговик сделав 1 цикл, остановится на 20 мс и продолжит крутиться. Если коротко, это только для переключения режимов.
Аватара пользователя
P_Ruslan
 
Сообщения: 94
Зарегистрирован: 12 июл 2011, 00:49
Откуда: Лебедин, Сумская обл. Украина
Skype: PoRuVl
прог. языки: Basic (VB, Blitz), Pascal, Delphi 7, C++
ФИО: Пономаренко Руслан Владимирович


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 13