Strona 2 z 2
Re: Xmega odmierzanie 1 s, 100ms itp
: 03 cze 2020, 20:16
autor: Pikczu
Odpowiem za Jacka.
Tak dokładnie będzie to sterowanie tokarką Tytan 750.
Re: Xmega odmierzanie 1 s, 100ms itp
: 04 cze 2020, 20:10
autor: Jacek
Witam - tak jak Paweł napisał ma to być sterownik do tokarki - pcb gotowe ale są 2 błędy na tyle nieistotne że do testów jest ok
20200604_200350-1.jpg
zobaczymy hi co z tego wyjdzie oczywiście z pomocą Kolegów z tego forum, sam nie dał bym rady.
pozdr. Jacek.
Re: Xmega odmierzanie 1 s, 100ms itp
: 19 lip 2020, 21:06
autor: Jacek
Witam - ja jeszcze o odmierzaniu tych czasów, czy taki zapis jest poprawny
konfiguracja timera Tcf0
Config Tcf0 = Normal , Prescale = 1024
Tcf0_per = 3125
zmienne dla timera
Dim Timer_tikx10 As Byte
Dim Timer_tikx100 As Byte
Dim Timer_tikx500 As Byte
Dim Timer_tikx1000 As Byte
Dim Timer_tik_flag As Byte
odliczanie czasów
if Tcf0_intflags.0 = 1 then
flaga10ms=1
incr timer_tikx10
Tcf0_intflags.0 = 0 ' <- to jest błąd, czytaj niżej [edytowano przez niveasoft]
end if
if timer_tikx10>=10 then
incr timer_tikx100
flaga100ms=1
timer_tikx10=0
end if
if timer_tikx100>=5 then
incr timer_tikx500
flaga500ms=1
timer_tikx100=0
end if
if timer_tikx500>=2 then
incr timer_tikx1000
flaga1s=1
timer_tikx500=0
end if
sterowanie ledami
If Flaga10ms = 1 Then
Flaga10ms = 0
End If
If Flaga100ms = 1 Then
Toggle Portc.5
Flaga100ms = 0
End If
if flaga500ms=1 then
toggle portc.4
flaga500ms=0
end if
If Flaga1s = 1 Then
Toggle Portc.0
Flaga1s = 0
End If
mi niestety nie działa.
pozdrawiam Jacek.
Re: Xmega odmierzanie 1 s, 100ms itp
: 19 lip 2020, 21:09
autor: niveasoft
Flagi kasuje się wpisując jeden a nie zero.
If Tcf0_intflags.0 = 1 then 'timer ustawił flagę
Tcf0_intflags.0 = 1 'żeby ją skasować wpisujemy jedynkę
End If
Re: Xmega odmierzanie 1 s, 100ms itp
: 10 sie 2020, 22:47
autor: Jacek
Witam - mam pytanie jak atxmedze skonfigurować timer TCC0 aby pracował jako generator częstotliwości, nie znalazłem przykładu a z helpa nie bardzo rozumiem jak to zrobić wiem że trzeba zacząć tak
ale nie wiem co dalej chciałbym aby
generował impulsy ze zmiennej pobranej z enkodera
nie wiem jak to ugryźć.
pozdrawiam Jacek.
Re: Xmega odmierzanie 1 s, 100ms itp
: 11 sie 2020, 8:48
autor: niveasoft
Nie wiem czy czytałeś Bascomową notę "Starting with Xmega"?
Poniżej kod do generowania częstotliwości z tej noty. Jeśli chcesz to mogę tę notę tu wstawić (dołączyć do postu). Ona dużo wyjaśnia początkującym.
Kod najpierw generuje 8MHz a po 3sec 122Hz.
' Frequency Generation with XMEGA : Output at PIND.0
$regfile = "xm256A3Bdef.dat"
$crystal = 32000000 '32MHz
$hwstack = 64
$swstack = 40
$framesize = 40
'include the following lib and code, the routines will be replaced since they are a workaround
$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014
'first enable the osc of your choice
Config Osc = Enabled , Pllosc = Disabled , Extosc = Disabled , 32khzosc = Disabled , 32mhzosc =
Enabled '32MHz
'configure the systemclock
Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1 '32MHz
'Config Interrupts
Config Priority = Static , Vector = Application , Lo = Enabled 'Enable Lo Level Interrupts
Config Com7 = 57600 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
'Portf.2 and Portf.3 is COM7
Open "COM7:" For Binary As #2
Config Eeprom = Mapped ' when using EEPROM , add this config command
Dim A As Word
Config Portd.0 = Output 'Output for Frequency
Print #2 , "----Example Digital Frequency Generation with XMEGA-----"
Config Tcd0 = Freq , Prescale = 2 , Comparea = Enabled , Resolution = 16
'TCD_PER is not used in Frequency (Waveformgeneration) mode, only the TCX_CCX Registers to set the
Period of the Digital Waveform
'Digital Waveform Generation
' +-----------+ +
' | | |
'------+ +----------+
'
' <--------------------->
' Period = TCD_CCA Register
' Prescale = 1 --> 32MHz
' Frequency max with TCD_CCA = 0 --> System Clock/2*Prescaler(CCA + 1) = 32MHz/2*2(0 + 1) = 32MHz/4 = 8MHz
' Frequency min with TCD_CCA = &HFFFF --> System Clock/2*Prescaler(CCA + 1) = 32MHz/2*2(65535 + 1) = 32MHz/4*65536 = 122 Hz
Tcd0_cca = 0 'F = 8 MHz
Wait 3
Tcd0_cca = &HFFFF 'F = 122 Hz
End 'end program
[EDIT] Nota jest już udostępniona jako przyklejony post w dziale Xmega.
Re: Xmega odmierzanie 1 s, 100ms itp
: 11 sie 2020, 22:30
autor: Jacek
Witam - dziękuje za podpowiedz jeszcze pytanie bo nie do końca rozumiem
szukałem takiego terminu w dokumentacji atxmega i nie znalazłem czy możesz napisać do czego się to odnosi bo
rozumiem że chodzi o counter - licznik.
czy to pierwsze to rejestr w atxmedze?
pozdrawiam Jacek.
Re: Xmega odmierzanie 1 s, 100ms itp
: 23 sie 2020, 19:36
autor: Jacek
Witam - odpaliłem silnik na płytce testowej xmegi
https://www.youtube.com/watch?v=0eZ7xPh5HBc
Nie uruchamiałem z generatora ponieważ walczyłem ze sterownikiem , okazało się że oznaczenia ( kolory ) przewodów silnika nie są zgodne z instrukcją.
Silnik na wyższych częstotliwościach bez rampy nie startuje - sterownik pokazuje błąd.
Nie wiem jak zrobić rampę startową no i "przekazywanie" impulsów z enkodera do timera sterującego impulsami dla sterownika.
pozdrawiam Jacek.