Nowe peryferia w mikrokontrolerach PIC10/16
List. 1. Przykładowy plik asemblerowy wygenerowany przez CLC Designera
; File: assy.inc ; Generated by CLC Designer, Version: 1.0.0.1 ; Date: 2011-10-11 19:08 ; Device:PIC16(L)F1501/3 BANKSEL CLC1GLS0 movlw H'00' movwf CLC1GLS0 movlw H'00' movwf CLC1GLS1 movlw H'00' movwf CLC1GLS2 movlw H'00' movwf CLC1GLS3 movlw H'00' movwf CLC1SEL0 movlw H'00' movwf CLC1SEL1 movlw H'00' movwf CLC1POL movlw H'4E' movwf CLC1CON BANKSEL CLC2GLS0 movlw H'12' movwf CLC2GLS0 movlw H'20' movwf CLC2GLS1 movlw H'18' movwf CLC2GLS2 movlw H'00' movwf CLC2GLS3 movlw H'04' movwf CLC2SEL0 movlw H'40' movwf CLC2SEL1 movlw H'00' movwf CLC2POL movlw H'95' movwf CLC2CON
Od strony funkcjonalnej CLC Designer to generator konfiguracji rejestrów CLC z wygodnym interfejsem graficznym. W wyniku jego działania programista otrzymuje pliki include w asemblerze (listing 1) lub języku C (listing 2), w których znajdują się zdefiniowane wartości do wpisania do rejestrów konfigurujących CLC.
List. 2. Przykładowy plik wygenerowany przez CLC Designera w języku C
// File: c.inc // Generated by CLC Designer, Version: 1.0.0.1 // Date: 2011-10-11 19:08 // Device:PIC16(L)F1501/3 CLC1GLS0 = 0x00; CLC1GLS1 = 0x00; CLC1GLS2 = 0x00; CLC1GLS3 = 0x00; CLC1SEL0 = 0x00; CLC1SEL1 = 0x00; CLC1POL = 0x00; CLC1CON = 0x4E; CLC2GLS0 = 0x12; CLC2GLS1 = 0x20; CLC2GLS2 = 0x18; CLC2GLS3 = 0x00; CLC2SEL0 = 0x04; CLC2SEL1 = 0x40; CLC2POL = 0x00; CLC2CON = 0x95;
Rys. 5. Dostępna w CLC Designer lista wyboru docelowej platformy sprzętowej
Na rysunku 5 pokazano listę wyboru docelowej platformy sprzętowej, na rysunku 6 listę wyboru sygnału wejściowego (listy są różne dla poszczególnych wejść i CLC). Pliki wyjściowe powstają na żądanie – rodzaj docelowego pliku wybiera się w pasku menu (rysunek 7).
Rys. 6. Jedna z list wyboru sygnału wejściowego do CLC
Rys. 7. Menu programu CLC Designer jest bardzo proste
Jak widać, obsługa programu nie jest specjalnie wymagająca, brakuje natomiast kreatora typowych projektów przydatnych modułów do zaimplementowania w blokach CLC, jak na przykład sekwencerów, enkoderów (NRZ, Manchester itp.), serializerów, generatorów liczb losowych (co prawda dość „krótkich”) itp. Być może producent wyposaży w takie narzędzie kolejne wersje oprogramowania, tymczasem zapraszamy do zabawy: komórki CLC, przejmując realizację części zadań od CPU, pozwala nieco „poszaleć” programistom zwiększając jednocześnie elastyczność sprzętową nowych mikrokontrolerów.