Léptetőmotor vezérlés
Úgy hogy pwma nem ismeri , timer0 nál hibát jelez a pwm=8 ra
Hogy is van ez ?
Pwm0 a és b
Pwm1 a és b
Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
ez így nem jó!
Nem tudom hogy néz ki ez helyesen.
Enable Timer0
On Timer0
Enable Timer1
On Timer1
Start Timer0
Start Timer1
Pwm0a = 50
Pwm0b = 100
Pwm1b = 50
Pwm1a = 100
Ez van a folytatásban
[/u]
Hogy is van ez ?
Pwm0 a és b
Pwm1 a és b
Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
ez így nem jó!
Nem tudom hogy néz ki ez helyesen.
Enable Timer0
On Timer0
Enable Timer1
On Timer1
Start Timer0
Start Timer1
Pwm0a = 50
Pwm0b = 100
Pwm1b = 50
Pwm1a = 100
Ez van a folytatásban
[/u]
M48-as chipre van nálam írva, abból puska:
[/code]
Kód: Egész kijelölése
'PWM
Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Pwm = 8 , Compare B Pwm = Clear Down
Config Timer2 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Lepteto_a Alias Pwm2b 'OC2B
Lepteto_b Alias Pwm1a 'OC1A
Lepteto_c Alias Pwm1b 'OC1B
Lepteto_d Alias Pwm2a 'OC2A
Lepteto_r Alias Pwm0b 'OC0B
Lepteto_f Alias Pwm0a 'OC0A
lepteto_a=0
lepteto_b=0
lepteto_c=0
lepteto_d=0
lepteto_e=0
lepteto_f=0
A léptetőmotor vezérlést én nem pwmel csináltam. hanem a pólusokat kapcsoltam meg felelős sorrendben és az közöttük lévő idővel állítottam a sebességet.
Kód: Egész kijelölése
$regfile = "AT26DEF.DAT"
$crystal = 280000
'
Config Portb = Output
Config Porta = Input
'
Dim T As byte
'0 - 255
'0 - 255
'
'*********************
' Sencing (Loop)
'*********************
'
Do
If Pina.2 = 0 And Pina.1 = 0 And Pina.0 = 0 Then Goto Motionstop 'válztozott
If Pina.2 = 0 And Pina.1 = 0 And Pina.0 = 1 Then T = 0 'változott
If Pina.2 = 0 And Pina.1 = 1 And Pina.0 = 0 Then T = 70
If Pina.2 = 0 And Pina.1 = 1 And Pina.0 = 1 Then T = 60
If Pina.2 = 1 And Pina.1 = 0 And Pina.0 = 0 Then T = 50
If Pina.2 = 1 And Pina.1 = 0 And Pina.0 = 1 Then T = 40
If Pina.2 = 1 And Pina.1 = 1 And Pina.0 = 0 Then T = 30
If Pina.2 = 1 And Pina.1 = 1 And Pina.0 = 1 Then T = 20
If Pina.3 = 1 Then Goto Revmode
'
Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 1
Waitms T
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portb.3 = 0
Waitms T
Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0
Waitms T
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 1 : Portb.3 = 1
Waitms T
Goto Motionstop
'
Revmode:
Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 1 : Portb.3 = 1
Waitms T
Portb.0 = 0 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0
Waitms T
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 0 : Portb.3 = 0
Waitms T
Portb.0 = 1 : Portb.1 = 0 : Portb.2 = 0 : Portb.3 = 1
Waitms T
Motionstop:
Loop
End
Köszi az infót.
Igen a pwm a motorok melegedését megelőzendő kell nekem
Van olyanom is ami nem pwm-es és jól működik CNC vezérlő programokkal
Igen a pwm a motorok melegedését megelőzendő kell nekem
Van olyanom is ami nem pwm-es és jól működik CNC vezérlő programokkal
Kód: Egész kijelölése
$regfile = "ATtiny13.dat"
$crystal = 9600000
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Input
Config Portb.5 = Input
Dim A As Byte
A = 1
Figyel:
Portb.4 = 1
Portb.5 = 1
If Pinb.4 = 0 Then
If Pinb.5 = 0 Then Gosub Fel Else Gosub Le
End If
Goto Figyel
Fel:
A = A * 2
If A > 8 Then A = 1
Portb = A
Waitus 10
Return
Le:
A = A / 2
If A < 1 Then A = 8
Portb = A
Waitus 10
Return
[
A hiba sajnos még nem oldódott meg a 2313-nál.
Bemásoltam a kódot és most azt mondja a Bascom:
Assignment error PWM0a
Erre a sorra hivatkozva :Pwm0a = 50 [/list]
Típushiba .
Az elején a 90S2313 chipre hivatkoztál. Abban csak PWM1 (pwm1a) van...
A kimenetekre tegyél LED-et . Szépen látszik....
Az elején a 90S2313 chipre hivatkoztál. Abban csak PWM1 (pwm1a) van...
Kód: Egész kijelölése
$regfile = "ATtiny2313.DAT"
'$regfile= "2313DEF.dat" <- Ez a nem jó!
$crystal = 16000000
$baud = 19200
' Config Portb.1 = Input
' Config Portb.0 = Input
' Config Portd.2 = Input
' Config Portd.3 = Input
'Ezek sem minden esetben letszukseglet
Config Portb.2 = Output
Config Portb.3 = Output
Config Portd.5 = Output
Config Portb.4 = Output
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Timer1 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Pwm = 8 , Compare B Pwm = Clear Down
' Enable Timer0
' On Timer0
' Enable Timer1
' On Timer1
'Enable Interrupts
' Start Timer0
' Start Timer1
Ki1 Alias Pwm0a
Ki2 Alias Pwm0b
Ki3 Alias Pwm1a
Ki4 Alias Pwm1b
Ki1 = 5
Ki2 = 10
Ki3 = 5
Ki4 = 10
do
ki1=ki1+20
ki2=ki2+40
ki3=ki3+62
ki4=ki4+35
waitms 250
loop