Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 gru 2024, o 19:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 31 sty 2013, o 22:34 
Offline
Użytkownik

Dołączył(a): 07 sty 2013
Posty: 89
Pomógł: 5

albo się powtarzam albo przed chwilą mnie wyautowało ,

Mam pytanie gdzie szybko doszkolić się w konstruowaniu macr ???
Mam taki problem , chcę nieco oszczędzić flash, oraz na czasie wykonania procesora.
Na wyświetlaczu ze sterownikiem UC1608 chce używać przygotowanej dużej czcionki ,
czcionka każdego znaku to powiedzmy trzy grupy po 10 bajtów , aby uniknąć zapisywania całej tablicy
do flash, chcę zapisać tam gotowe napisy ale w taki sposób aby najpierw były tam "górne" 10-tki bajtów
znaków całego tekstu , potem środkowe, potem jeszcze niższe , aż cały tekst zostanie wyświetlony .
Chodzi o prostą rzecz, procesor ma wyświetlać "całe okno" sukcesywnym czytaniem kolejnych adresów
flash jako ciąg od pierwszego do ostatniego. Jedynym co musi jeszcze zrobić funkcja to tylko pilnować szerokości
"okna" i zmienić adres zapisu gdy osiągnie ostatnią prawą pozycję .
Myślę że powód jest poważny takiego postawienia sprawy , gdyż dopiero zaczynam z C , i póki co
najczęściej tylko rozpaczam jak funkcje pożerają cykle procesora bez , zmiłuj się ...
Zatem , proszę o radę, jak ewentualnie skuteczniej podejść do sprawy , i gdzie znaleźć więcej materiałów
o regułach tworzenia macr.??

J.P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sty 2013, o 23:25 
Offline
Użytkownik

Dołączył(a): 27 gru 2012
Posty: 159
Pomógł: 3

Czy chodzi Ci o makra typu #define?

To są makrodefinicje preprocesora i są używane przed kompilacją, i służą tylko i wyłącznie:
    Wyłączaniu/załączaniu fragmentów kodu z kompilacji (dyrektywa #if, #ifndef #eif)
    Dołączaniu plików nagłówkowych (#include)
    Definiowaniu (sic) stałych (#define)
Czy o czymś zapomniałem? (pisze z pamięci)

Zapewne chodziło by Ci o dyrektywe #define aby zdefiniować czcionki?

Co do pilnowania "szerokości okna" to tu cię zasmucę. Jak już pisałem makra używane są przez preprocesor PRZED kompilacja a więc nie mają najmniejszego wpływu na to co się dzieje podczas wykonywania programu (tzn nie da się makrem napisać funkcji tak aby odpowiadała na naciśnięcie klawisza itp).

Apo drugie jak by to miało oszczędzić pamięć typu FLASH? skoro to co zdefiniujesz i tak musi być gdzieś zapisane i tak, to jest w pamięci programu FLASH :)

Widzę że musisz poczytać sobie o obszarach pamięci mikroprocesorów (RAM, FLASH i EEPROM)


-------
edit

A może chodzi Ci o funkcje?
To polecam niebieską książeczkę. Albo dowolną DOBRĄ książke do podstaw C/C++

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 00:00 
Offline
Użytkownik

Dołączył(a): 07 sty 2013
Posty: 89
Pomógł: 5

Hej
Nie zrozumieliśmy się , chodzi właśnie o to ,aby korzystając z pliku w którym właśnie jako #define są wpisane czcionki,
- to niczego jeszcze nie umieszcza we flash , Jednak, jeśli da się zmajstrować makro wyłuskujące potrzebne ciągi z tych
stałych "dosłownych ?", i dopiero efekt działania napisanego makra wpisać jako wartość ciągu const char PROGMEM[....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 00:27 
Offline
Użytkownik

Dołączył(a): 27 gru 2012
Posty: 159
Pomógł: 3

Nie zaraz zaraz,
Jeżeli jako #define wpiszesz czcionki to one i tak zajmą miejsce w pamięci programu... Nic za darmo nie ma :)


A korzystanie z tych plików jest banalne. Wystarczy że użyjesz plików nagłówkowych a w nich będą znajdowały się dyrektywy #define

tak jak pisałem: dobra książka do C/C++ lub porządny kurs internetowy

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 00:41 
Offline
Użytkownik

Dołączył(a): 07 sty 2013
Posty: 89
Pomógł: 5

hej,
Zatem , co zostanie wpisane po takiej dyrektywie
#define A1 0x27
#define A2 0x3F
no i z pewnością nic nie zostanie wpisane dopóki gdzieś nie użyję choćby:
u=A1 // prościej tego nie wyrażę ...
Oczywiście rozpisanie każdej czcionki na trzy #define jest delikatnie ujmując nieco męczące,
zatem moim zdanie potrzeba
a. cały opis czcionek umieścić w jednym , kilku co najwyżej #define
a potem zmajstrować kolejne kilka makr które użyją tego pierwszego kramu aby z niego wyciągnąć to co potrzebne ..
Weź za punkt wyjścia choćby Mirka sposób sklejania nazw dla PORT(x) , SPORT(x) itd



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 00:46 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

oj jp_elek ale powiedz (bo może nie rozumiem) co to za pomysł aby definiować czcionki za pomocą #define ??? :( czy to nie jakieś nieporozumienie dość straszne ??? (ale uprzedzam może nadal nie rozumiem o co tobie chodzi dokładnie)

przecież czcionki tzn jedynie słuszny sposób umieszczania czcionek to właśnie definicja tablic w C, tablic we Flash jak piszesz czyli:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 01:02 
Offline
Użytkownik

Dołączył(a): 07 sty 2013
Posty: 89
Pomógł: 5

hej "mirek" właśnie chodzi o to aby zdefiniować dosłownie i tylko zdefiniować , ale użyć wyłącznie jako wzorca z którego pobrane
zostaną tylko te potrzebne i tylko te potrzebne w napisach podanych jako "argument" dla makro w efekcie końcowym stworzą rzeczywiste "stringi we flash" .
Co do istoty rzecz polega na dostępności dla preprocesora całego zestawu czcionek ,po to aby stworzyć ciągi wynikowe i w dodatku
przeorganizowane tak jak pisałem zakładając WĄTEK. Pierwsze skojarzenie przyszło mi do głowy z Twoim programem - tylko rzuciłem na niego okiem - właśnie do budowania czcionek Pixel.. ja od dawna używam SG bitmap Font Editor i zrobienie czcionek nie jest większym problemem.


inaczej: czcionki wszystkie mają być dostępne w całości tylko dla preprocesora , w kodzie programu mają znaleźć się tylko
napisy utworzone na podstawie dostępnych preprocesorowi wszystkich czcionek



Ostatnio edytowano 1 lut 2013, o 10:26 przez jp_elek, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 01:39 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Tzn ja jednak sobie tego nie mogę wyobrazić sorki. Nie mówię że masz jakiś zły pomysł ale go nie rozumiem niestety :(

Ja w pixel factory po prostu generuję sobie właśnie całe pliki *.c z definicjami wybranych czcionek i te dołączam sobie do programu. Zresztą możesz przecież pobrać sobie wersję DEMO tego programu i zobaczyć jak to robię. Dostajesz na wyjściu cały gotowy komplet plików, który wystarczy dołączyć do projektu i masz czcionki.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 08:25 

Pomógł: 0

Koledze chodzi zapewne o instrukcje warunkowe preprocesora.
Czyli coś na kształt twoich bibliotek Mirku, czyli np. potrzebujemy funkcję lcd_home(); no to bach w pliku przy odpowiedniej opcji wpisujemy '1' zamiast '0' a nie tworzymy całego ciała programu.
Czyli musiało by to być na
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Tak sobie to wyobrażam, tylko nie wiem jak to zautomatyzować.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2013, o 09:40 
Offline
Użytkownik

Dołączył(a): 07 sty 2013
Posty: 89
Pomógł: 5

jak dotąd chyba najbliżej mojego problemu jest (rezsurmar) , otóż jeszcze inaczej nazwę to tak :
macro ma spowodować umieszczenie w tablicy flash gotowej mapy bitowej "okna" zbudowanej na podstawie pełnego zestawu
czcionek dostępnego tylko i wyłącznie preprocesorowi !!!.

A jeszcze inaczej, ze szczegółami- uprzedzam bardzo rozwlekle , używając "nędzy, nędz wszelakich== edytor macr w AVR Studio4"
takie sobie dziwaczenie, skutecznie tworzy gotową ,zainicjowaną całkiem przyzwoitą structurę ze wskaźnikami ,zmiennymi bitowymi i co tam jeszcze..
// z góry informuję iż wiem, że te makra tylko liczą, gdybym wiedział jak "sortować i wyłuskiwać" to bym tego wątku nie założył,
tylko "machnął" w AVRS4, skopiował i po problemie, jednak przesiadam się właśnie na super inteligenta == C , więc chce odpowiedź na postawione pytanie jakoś uzyskać ...
oto dłużyzna - za to skrajnie prosta, która powinna wyjaśnić jakiej techniki szukam.

ps. poniżej

".equ" ==> robi tyle co #define

.macro NAZWA ==> to ciało makra , też niczego nie robi , opisuje tylko mechanizm co ma zrobić preprocesor gdy napotka
dyrektywę .set a po niej wymienioną nazwę NAZWA. - "ciało kończy się dyrektywą .endmacro

.set NAZWA ==> tutaj właśnie podaję "argumenty" dla maszynki o nazwie NAZWA wymienionej po .macro , to to dopiero produkuje w PC-cie jakąś nową wartość dla identyfikatora NAZWA.

.db NAZWA , .dw NAZWA ==> tutaj owa wartość z PC-ta czytaj preprocesora jest formatowana na 1,2,4 bajty itd.

aby zatem utworzyć teraz tablicę z "moją mapą bitową" niekonieczne jednoelementową zamiast wypisywać żmudnie wszystkie elementy , piszę tylko nazwę macra , po tym podaję argumenty ( w tym przykładzie ) jest to text który chcę umieścić w oknie,
a preprocesor podmienia mój tekst na ciąg bitowy zależny od zadeklarowanej czcionki !!!

Tak naprawdę to nie robi nic innego niż normalnie gdy nie ma macra, wtedy domyślnie podstawia pod litery mojego tekstu
kody ascii , więc jak zmusić go aby zamiast kodów ascii podstawił wzory bitowe czcionek ????????????? oczywiście dużo dłuższe niż jednobajtowy kod ascii.


uwaga ";" robi za znak komentarza - do końca linii !!!

ps. trzykroć dołączałem plik , nie łyka , zatem wprost text poniżej:
;================================================================================================
; numery bitów kolejnych atrybutów ekranu i pola
;================================================================================================
.equ Tryb_Pr = 0 ;nakaz obsł. klawiszy trybów pracy , STOP jest zawsze obsługiwany
.equ Select_On = 1 ;nakaz obsługi <> bo Soft_Key jest do 10 szt
.equ Mpk_On = 2 ;ten ekran jest multiplikowany /inna obsługa
.equ Ekran_On = 3 ;usunąć po aktualizacji
.equ Edit_On = 4 ;bit włączonej edycji
.equ Pas_I = 5 ;numer bitu hasła I -to samo w HiByte dla potwierdzenia uprawnień
.equ Pas_II = 6 ;numer bitu hasła II
.equ Pas_III = 7 ;numer bitu hasła III

.equ Rec_Ekr_Tab = 18 ;długość rekordu opisu jednego ekranu
;=================================================================================================
; opis drzewa ekranów 30 rekordów po 18 bajtów dla każdego ekranu
;=================================================================================================
;stałe dla przeunięcia ZH:ZL w tablicy Ekr_Tab
.equ E_Nr = 0; 0-wy bajt = numer własny ekranu
.equ E_Atr = 1; 1-szy bajt = Atrybuty ekranu
;.equ E_PDom = 2; 2-gi bajt = Nr Domyślnego pola
.equ E_K13 = 2; 2-gi bajt = Nr domyślnego komunikatu dla tego ekranu
.equ E_SKmax = 3; 3-ci bajt = Liczba Pól/ F1 do F_SKmax dla SKey /Zwykłe Ekrany do 9,a Mpk do 255
.equ E_Var_L = 4; 4-ty bajt = low(adres zmiennej)
.equ E_Var_H = 5; 5-ty bajt = high(adres zmiennej)
.equ E_SKey = 6; 6-ty bajt = numer Soft_Key-text dla krotności =0
.equ E_ESC = 7; 7-ty bajt = numer ekranu po naciśnięciu ESC
.equ E_F1 = 8; 8-ty bajt = numer ekranu po naciśnięciu F1
.equ E_F2 = 9; 9-ty bajt = numer ekranu po naciśnięciu F2
.equ E_F3 = 10; 10-ty bajt = numer ekranu po naciśnięciu F3
.equ E_F4 = 11; 11-ty bajt = numer ekranu po naciśnięciu F4
.equ E_F5 = 12; 12-ty bajt = numer ekranu po naciśnięciu F5
.equ E_F6 = 13; 13-ty bajt = numer ekranu po naciśnięciu F6
.equ E_F7 = 14; 14-ty bajt = numer ekranu po naciśnięciu F7
.equ E_F8 = 15; 15-ty bajt = numer ekranu po naciśnięciu F8
.equ E_F9 = 16; 16-ty bajt = numer ekranu po naciśnięciu F9
.equ E_F10 = 17; 17-ty bajt = numer ekranu po naciśnięciu F10

;============================================================================================
;numery bitów dla bajtu atrybutów Pola
;============================================================================================
.equ Pole_On = 0 ;Pole Włączone/wyłączone
.equ Litery_On = 1 ;nakaz obsługi liter dla wartości pola
.equ Mode_On = 2 ;Mode_On nakaz obsługi klawiszy zmieniających tryby pracy
.equ Edit_Prh = 3 ;zakaz Edycji pola
;.equ Edit_On = 4 ;bit włączonej edycji
;.equ Pas_I = 5 ;numer bitu hasła I -te bity maskują uprawnienia z ekranu
;.equ Pas_II = 6 ;numer bitu hasła II -ustawione na 1 nadpisują uprwnienia ekranu
;.equ Pas_III = 7 ;numer bitu hasła III -ustawione na 0 przejmują uprawnienia ekranu

.equ Rec_Pola_Tab = 24 ;długość rekordu pola
;===================================================================================================
; Opis Pól ekranu w 22 bajtach po 36 rekordów dla każdego ekranu= 792 bajty na ekran
;===================================================================================================
.equ P_Atr = 0; 0-wy bajt = Atrybuty Pola
.equ P_Lg = 1; 1-szy bajt = ilość znaków pola/długość oraz typ pola = hasło , data , czas itp
.equ P_K13 = 2; 2-gi bajt = Numer komunikatu dla linii L_13
.equ P_SK = 3; 3-ci bajt = Nr.SK_Fld do podświetlenia na linii SK_Shf (Soft_Key's)
.equ P_Prv = 4; 4-ty bajt = Pole poprzednie
.equ P_Nxt = 5; 5-ty bajt = Pole następne
.equ P_TxL = 6; 6-ty bajt = Low(Początek_Pola) na ekranie tekstowym
.equ P_TxH = 7; 7-my bajt = high(Poczatek_Pola):wskaźnik do pamięci VideoRam
.equ P_GrL = 8; 8-my bajt = low początek pola na ekranie graficznym
.equ P_GrH = 9; 9-ty bajt = high początek pola na ekranie graficznym
.equ P_VRL = 10;10-ty bajt = LoByte adresu zmiennej związanej z tym polem
.equ P_VRH = 11;11-ty bajt = HiByte adresu zmiennej w RAM
.equ P_VR3 = 12;12-ty bajt = Byte3 adresu zmiennej w RAM + Ukryj_znaki <<4
.equ P_VEL = 13;13-ty bajt = Lo Byte adresu w EEPROM
.equ P_VEH = 14;14-ty bajt = Hi Byte adresu w EEPROM
.equ P_VLL = 15;15-ty bajt = Lo Byte minimalnej wart. Zmiennej pola
.equ P_VLH = 16;16-ty bajt = Hi Byte
.equ P_VL3 = 17;17-ty bajt = Byte3
.equ P_VHL = 18;18-ty bajt = Lo Byte minimalnej wart. Zmiennej pola
.equ P_VHH = 19;19-ty bajt = Hi Byte
.equ P_VH3 = 20;20-ty bajt = Byte3
.equ P_VTp = 21;21-ty bajt = Typ Zmiennej dla tego pola
.equ P_STp = 22;22-gi bajt = Typ Pola"String" lub wyświetlanego tekstu
.equ P_Rez = 23;23-i bajt = rezerwa

.dseg
;.org 2000
DummyVar: .byte 10 ; pusta nieużywana zmienna Ram
.eseg
Dum_VarE: .byte 4 ; pusta nieużywana zmienna EEPROM na adresie 0x00-0x03
.cseg

.if Tablice_Ekr_Single ==1

JMP Start_Test

.endif

;=====================================================================================================
;Tablica Atrybutów Ekranu - te atr. są nadrzędne nad atr. Pól
;bit 7 6 5 4 3 2 1 0
;0b 0 0 0 0 0 0 0 0
; | | | | | | | |
; | | | | | | | - 1= obsługuj klawisze trybu pracy (01 do 07) ,nie dot.:F1 do F5,<>, STOP ,<,>
; | | | | | | --- 1= nakaz obsługi <> bo Soft_Key jest więcej niż 5 szt
; | | | | | ------1=;ten ekran jest multiplikowany /inna obsługa
; | | | | --------1= ust. na "0" ukrywa ekran przed wyświetleniem
; | | | ----------1= bit włączonej edycji
; | | ------------1= żądaj hasła dostępu poziom I /Użytkownik
; | --------------1= żądaj hasła dostępu poziom II /Nadzór Techn.
; ----------------1= żądaj hasła dostępu poziom III /Serwis PLC




;=====================================================================================================
;===============Set_Ekran macro obliczające dane dla tabeli Ekr_Tab ==================================
;=====================================================================================================
.macro Set_Ekran
.set Tryb = @1 *1
.set Funkc = @2 *2 + Tryb
.set Extend = @3 *4 + Funkc
.set F6_On = @4 *8 + Extend
.set Ed_On = @5 *16 + F6_On
.set Has_I = @6 *32 + Ed_On
.set Has_II = @7 *64 + Has_I
.set Has_III = @8 *128 + Has_II
.set Ekran = ((Has_III << 8) +@0 )
.dw Ekran ;bajt 0 NrEkranu,bajt 1= Atrybuty
.set Ekran = ((@9 << 8) + @11)
.dw Ekran ; bajt2 Domyślne Pole i bajt 3= W-krotność ekranu
.set Ekran = (@23)
.dw Ekran ;bajt 4= low(zmienna),bajt 5=high(zmienna)
.set Ekran =((@12<<8) + @10)
.dw Ekran ;bajt 6=nr.Soft_Key,bajt 7 = Ekr. dla ESC
.set Ekran =((@14<<8) + @13)
.dw Ekran ;bajt 8= Ekr dla F1 i bajt 9= Ekr dla F2
.set Ekran =((@16<<8) + @15)
.dw Ekran ;bajt 10= Ekr dla F3 i bajt 11= Ekr dla F4
.set Ekran =((@18<<8) + @17)
.dw Ekran ;bajt 12= Ekr dla F5 i bajt 13= Ekr dla F6
.set Ekran =((@20<<8) + @19)
.dw Ekran ;bajt 14= Ekr dla F7 i bajt 15= Ekr dla F8
.set Ekran =((@22<<8) + @21)
.dw Ekran ;bajt 16= Ekr dla F9 i bajt 17= Ekr dla F10
.endmacro
.cseg
Ekr_Tab:;Atrybuty ekranów 540 bajtów = 30 ekranów x 18 bajtów na ekran
;=========Ekran_0 do Ekran_29 ===========================
; @0-Nr.Ekranu
; | @1-Tryb_Pr obsługuj klawisze trybu pracy (01 do 07)
; | | @2-Select_on to jest końcowy ekran w drzewie menu,przyciśnięcie F1-F5 zatwierdza wybór Ekranu do pracy
; | | | @3-Mpk_On ten ekran jest multiplikowany /inna obsługa
; | | | | @4-Ekran_On ;ust. na "0" ukrywa ekran przed wyświetleniem
; | | | | | @5-Edit_On
; | | | | | | @6-Pass1
; | | | | | | | @7-Pass2
; | | | | | | | | @8-Pass3
; | | | | | | | | | @9-SKmax ,ilość opcji od F1-do Fmax
; | | | | | | | | | | @10-Linia Tx_SoftKey wymagana przez ten ekran
; | | | | | | | | | | | @11-Domyślny komunikat K13
; | | | | | | | | | | | | @12-Ekr dla ESC
; | | | | | | | | | | | | | @13-Ekr dla F1 , wpis 77 oznacza koniec wyboru ekr. i przełączenie do wyboru pola do edycji
; | | | | | | | | | | | | | | @14-Ekr dla F2
; | | | | | | | | | | | | | | | @15-Ekr dla F3
; | | | | | | | | | | | | | | | | @16-Ekr dla F4
; | | | | | | | | | | | | | | | | | @17- Ekr dla F5
; | | | | | | | | | | | | | | | | | | @18 - Ekr dla F6
; | | | | | | | | | | | | | | | | | | | @19 -Ekr dla F7
; | | | | | | | | | | | | | | | | | | | | @20 -Ekr dla F8
; | | | | | | | | | | | | | | | | | | | | | @21-Ekr dla F9
; | | | | | | | | | | | | | | | | | | | | | | @22-Ekr dla F10
; | | | | | | | | | | | | | | | | | | | | | | | @23-zmienna ekranu\
; | | | | | | | | | | | | | | | | | | | | | | | |
; | | | | | | | | | | | | | | | | | | | | | | | |
Set_Ekran 0 ,0,1,0,1,1,0,0,0, 4, 2,17, 0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 0,0x0008 ;E_00-Powitalny Systemu
Set_Ekran 1 ,1,1,0,1,1,0,0,0, 1, 4,18, 0, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,(Lst_Hasla) ;E_01-Powit.Gr.Ustawienia Główne
Set_Ekran 2 ,1,1,0,1,1,0,0,0, 3, 6,18, 0, 8, 9,10,11,11,11,11,11,11,11,0x0008 ;E_02-Powit.Gr.Praca
Set_Ekran 3 ,1,1,0,1,1,0,0,0, 3, 8,18, 0,12,13,14,15,15,15,15,15,15,15,0x0008 ;E_03-Powit.Gr.Maszyna
Set_Ekran 4 ,1,1,0,1,1,0,0,0, 2, 10,18, 0,16,17,18,18,18,18,18,18,18,18,0x0008 ;E_04-Powit.Gr.SERWIS
Set_Ekran 5 ,1,1,0,1,0,0,0,0, 4, 12,18, 0,19,20,21,22,23,23,23,23,23,23,0x0008 ;E_05-Powit.Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO