Odpowiem za Jacka.
Tak dokładnie będzie to sterowanie tokarką Tytan 750.
Xmega odmierzanie 1 s, 100ms itp
- Pikczu
- Posty: 391
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Xmega odmierzanie 1 s, 100ms itp
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
zobaczymy hi co z tego wyjdzie oczywiście z pomocą Kolegów z tego forum, sam nie dał bym rady.
pozdr. Jacek.
zobaczymy hi co z tego wyjdzie oczywiście z pomocą Kolegów z tego forum, sam nie dał bym rady.
pozdr. Jacek.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Xmega odmierzanie 1 s, 100ms itp
Witam - ja jeszcze o odmierzaniu tych czasów, czy taki zapis jest poprawny
konfiguracja timera Tcf0
zmienne dla timera
odliczanie czasów
sterowanie ledami
mi niestety nie działa.
pozdrawiam Jacek.
konfiguracja timera Tcf0
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Config Tcf0 = Normal , Prescale = 1024
- Tcf0_per = 3125
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- 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
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- 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
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- 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
pozdrawiam Jacek.
- niveasoft
- Posty: 1236
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Xmega odmierzanie 1 s, 100ms itp
Flagi kasuje się wpisując jeden a nie zero.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- If Tcf0_intflags.0 = 1 then 'timer ustawił flagę
- Tcf0_intflags.0 = 1 'żeby ją skasować wpisujemy jedynkę
- End If
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Xmega odmierzanie 1 s, 100ms itp
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.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Config Tcc0 = Freq
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- portc.0
nie wiem jak to ugryźć.
pozdrawiam Jacek.
- niveasoft
- Posty: 1236
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Xmega odmierzanie 1 s, 100ms itp
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.
[EDIT] Nota jest już udostępniona jako przyklejony post w dziale 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.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- ' 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
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Xmega odmierzanie 1 s, 100ms itp
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.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Tcd0_cca
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Tce0_cnt
czy to pierwsze to rejestr w atxmedze?
pozdrawiam Jacek.
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Xmega odmierzanie 1 s, 100ms itp
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.
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.