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

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

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

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



PWM Atmega8

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

1

есть такой код

Код:
$regfile = "m8def.dat"
$crystal = 16000000
'$sim
$baud = 9600
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1
Dim Count As Byte
Dim Volts As Single
Count = 0

'Config Lcd = 16 * 2 , Chipset = Ks077 : Cursor Off
'Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
'Config Lcdmode = Port

Config Portd.2 = Input
Config Portd.3 = Input
Portd.2 = 1                                                 ' меньше
Portd.3 = 1                                                 ' больше

Do
If Portd.3 = 0 Then Incr Count
If Portd.2 = 0 Then Decr Count
If Count = 255 Then Count = 0


Pwm1a = Count                                               ' выход ШИМ 16 пин
Volts = Count / 255
Volts = Volts * 5
Print Fusing(volts , "##.##") ; " V  " ; "Count = " ; Count
Cls
Lcd Fusing(volts , "##.##") ; " V  " ; Count
Waitms 10
Loop
End

В баскоме эмуляция отрабатывает успешно, в реале контроллер вроде как не видит нажатия кнопок PD2  и PD3. В терминал выдает только нулевые значения.
В чем может быть дело?

0

2

самая стандартная ошибка: считывают PIN а не PORT

0

3

вроде во всей программе и прописаны именно PORT

0

4

а надо PIN (если читаем) :D

0

5

ой спасибо,я просто не понял прямого смысла вашего совета на счет считывания пинов,а не портов, спасибо огромное,все решилось!

0

6

подскажите еще пожалуйста, не отрабатывает логическое выражение

Код:
If Adc4 > 280 Then
 If Pind.4 = 0 Then
   Gosub Progs1
    Else
      Gosub Progs2
   End If
Else
   Gosub Progs3
End If

Loop
end

progs1:
-----
return

progs2:
-----
return

rpogs3:
-----
return

при изменении состояния порта Pind.4 с 0 на 1 не перескакивает на progs2, а просто зацикливается на первом условии Progs1

0

7

значит у вас Pind.4 всегда равен 0
подтяжка входа включена?

0

8

подтяжка внутренняя включена,и физически присутствует положительное напряжение на выводе

0

9

еще вопросик по поводу шим. картинка на осциллографе малость не понятна. сразу при выборе инкремента ширина почему-то максимально большая, и уменьшается. дело в инверсии выходного сигнала?

0

10

Хех, так все просто! я уж подумал,что надо как-то программно инвертировать сигнал шим.
Спасибо,ребята,вы профессионалы!

0