Свежие обсуждения
Микроконтроллеры

Программирование PIC16f84, 8051 на основе таймера...язык программирвоания - СИ.

Ув. форумчане, прошу помощи...

Нужно создать кусочек программы (инициализация вроде есть), который бы делал следующие:

- в зависимости от значения некого V, микропроцессор посылал импульсы, разной величины.
- все это делать на основе таймера.

Примерно так: (на основе широтно-импульсной модуляции)

Если V=60, мп подает сигнал/импульс на некий порт (Х), при этом длинна импульса регулруется таймером, а именно таймер начинает отсчет от (к примеру) 60 000 бит до конца(то есть от 60000 до 65536)

Если V=70, мп подает сигнал/импульс на некий порт (Х), при этом длинна импульса регулруется таймером, а именно таймер начинает отсчет от (к примеру) 62 000 бит до конца(то есть от 62000 до 65536)
Неизвестные регистры, порты можно называть просто буквами алфавита.

Чтобы было понятней в картинке (проценты - величины просто для примера): http://pixs.ru/showimage/forumJPG_1710261_2187957.jpg

Пожалуйста, подскажите..всего фрагментик..дальше сам докумекаю..

 

Есть подобная реализия на ассемблере, нужно на Си. Подскажите плиз.

ORG 0
JMP INIT
ORG 0Bh ;ОБРАБОТКА ПРЕРЫВАНИЯ ТАЙМЕРА0
JMP TIK
INIT:
MOV TMOD,#00000001B ;16-БИТНЫЙ ТАЙМЕР0
MOV IE,#10000010B ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА0
SETB TR0 ;ПУСТИТЬ ТАЙМЕР
JMP $ ;ЖДЕМ ПРЕРЫВАНИЕ
TIK:
MOV TH0,#HIGH(15542) ;ПЕРИОД 50 МС
MOV TL0,#LOW(15542)
;-----------------------
NOP
;-----------------------
RETI
END