/
Qt-pwm-one.py
48 lines (35 loc) · 1010 Bytes
/
Qt-pwm-one.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import sys
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QWidget, QSlider, QApplication, QVBoxLayout
from kuttyPy import *
class mwin(QWidget):
def __init__(self):
QWidget.__init__(self)
self.resize(400, 100)
self.setWindowTitle('Control Duty Cycle of PWM0')
sl = QSlider(Qt.Horizontal)
sl.setMinimum(0)
sl.setMaximum(1023)
sl.setValue(0)
sl.valueChanged.connect(self.set_pwm)
layout = QVBoxLayout()
layout.addWidget(sl)
self.setLayout(layout)
self.init_pwm()
def set_pwm(self, val):
print val
setReg (OCR1AH , (val>>8)&0x3) #Output Compare register values
setReg (OCR1AL , val&0xFF) #Output Compare register values
def init_pwm(self):
# Initialize PWM1
csb = 1 # Clock select bits uint8_t
COM1A1 = 7
WGM11 = 1
WGM10 = 0
setReg(TCCR1A , (1 << COM1A1) | (1 << WGM11) |(1 << WGM10) )#Set 10bit PWM mode
setReg(TCCR1B , csb)
setReg(DDRD,255)
app = QApplication(sys.argv)
mw = mwin()
mw.show()
sys.exit(app.exec_())