| Author |
Message
|
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#31
05 Feb 2012 21:43 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Postanowiłem dołożyć do mojego układu czujnik zaniku fazy aby w razie zaniku napięcia sieci sterownik mógł zadbać o awaryjne zamknięcie przepustnic itp.
Oczywiście cały system ogrzewania wspiera zasilacz awaryjny (starcza na jakieś 1.5h).
Poniżej zamieszczam schemat układu który powinien spełnić swoje zadanie. Proszę o opinię na jego temat.
|
|
| Back to top |
|
 |
SylwekK Poziom 18

Joined: 01 Oct 2007 Posts: 479 Location: Lipsko
|
#32
05 Feb 2012 21:54 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
A nie było by bezpieczniej wstawić rezystor przed diodę zenera. Wiem, że prąd tam nieduży bo kondensator na większy nie pozwoli mimo to byłbym za ochroną diody zenera.
W moim rozwiązaniu badania zaniku fazy (przy awaryjnym zasilaniu mieszkania) zastosowałem podobne rozwiązanie tyle, że na przekaźniku zamiast transoptora.
Półtora roku chodzi bez problemu.
|
|
| Back to top |
|
 |
Google

|
#
05 Feb 2012 21:54 |
|
|
|
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#33
05 Feb 2012 22:16 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
A no bezpieczniej :) . Koniecznie chcę użyć transoptora gdyż mam "fobię" przekaźnikową .
A i tak stopnie końcowe sterowania pompami itd. muszę zrealizować na przekaźnikach.
Czyli jak miałaby wyglądać po zmianach moja wersja? Czy wystarczy że dołożę rezystor pomiędzy mostek a zenerkę? I jakiej wartości miałby być?
|
|
| Back to top |
|
 |
tmf Poziom 24

Joined: 12 Aug 2009 Posts: 4766 Location: Katowice
|
#34
05 Feb 2012 22:17 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Jeśli możesz sobie pozwolić na połączenie GND z N lub L sieci to najprościej zrezygnować z optoizolacji i połączyć L do wejścia AVR przez rezystor (najlepiej dwa) rzędu 1-2MOm. Jeśli zależy ci na optoizolacji to zastosuj transoptor z dwoma antyrównoległymi diodami, żeby się wzajemnie ochraniały i w szereg rezystor. Dla prądów diody takiego LTV814 rzędu 1mA możesz sobie kondensator odpuścić i cały układ zasilić poprzez rezystor, 0,25W wystarczy. Odpadną elementy typu mostek i cała reszta drobnicy.
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#35
05 Feb 2012 22:22 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Ale jestem "durny". Przecież mogę wykorzystać układ jaki stosowałem w detekcji zera sieci gdzie stosowałem PC814 :) . Przepraszam za durne pytania jakie zadaję ale czasami myślenie widać opornie mi przychodzi...
A co do łączenia się z N lub L sieci to nie chcę tego robić. Zależy mi na maksymalnej optoizolacji.
Po zastosowaniu takiego rozwiązania układ "troszkę" się uprości w porównaniu do poprzedniej proponowanej wersji.
Dodatkowo mogę podłączyć to pod któryś INT procesora i w prosty sposób wykrywać w przerwaniu zanik fazy. A i dodatkowo może mi to posłużyć jako sygnał zegarowy do wykonywania jakichś funkcji. W końcu otrzymuję w ten sposób dość precyzyjne 100Hz.
|
|
| Back to top |
|
 |
tmf Poziom 24

Joined: 12 Aug 2009 Posts: 4766 Location: Katowice
|
#36
05 Feb 2012 22:58 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Jak na wyjściu dasz kondensator tworząc filtr RC to zanik fazy sprawdzisz po prostu poprzez zbadanie stanu pinu IO. Ale wykorzystanie tego jako wzorzec czasu też jest dobrym pomysłem. Podepnij to pod wejście zegarowe timera, będzie zliczał cykle, można to wykorzystać jako RTC bez dodatkowych elementów typu kwarc.
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#37
07 Feb 2012 20:56 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Poniżej wklejam aktualny schemat.
Nie wszystkie piny procesora są podłączone. Podyktowane jest to tym iż prawdopodobnie i tak część z nich zostanie inaczej podłączona w celu uproszczenia PCB kiedy zacznę rozmieszczać elementy.
Nie za bardzo mam pomysł na izolację pinów sterujących przepustnicą.
Problem w tym iż kabel od sterownika do przepustnicy będzie miał dobre 5m długości i będzie przebiegał przy pompach i grzałkach. Nie chcę puszczać linii bezpośrednio z procesora do przepustnicy gdyż obawiam się że jest duże prawdopodobieństwo iż zadziałają jak anteny i będą zbierać zakłócenia . Wolałbym je jakoś odizolować np. optycznie.
W sumie tak też zrobiłem ale wolę aby ocenił to ktoś bardziej zorientowany w temacie niż ja.
|
|
| Back to top |
|
 |
251mz Poziom 16

Joined: 10 Oct 2003 Posts: 336
|
#38
10 Feb 2012 11:28 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Wygląda wszystko ok.
|
|
| Back to top |
|
 |
Google

|
#
10 Feb 2012 11:28 |
|
|
|
|
|
| Back to top |
|
 |
tmf Poziom 24

Joined: 12 Aug 2009 Posts: 4766 Location: Katowice
|
#39
10 Feb 2012 11:51 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
To po kolei:
1. Zasilanie. Widzę, że masz prostownik jednopołówkowy, dlaczego? Dla takiego kondensator na wejściu musi być 2*większy niź dla Graetza. W dodatku 47uF to zdecydowanie za mało. Policz prąd pobierany przez układ, ale na ślepo strzelałbym, że koło 2200uF jest potrzebny i nie na 10V tylko co najmniej na 25. Rozważ też użycie prostej przetwornicy impulsowej zamiast grzejnika 7805.
2. RTC. Można zastosować baterię, można pomyśleć nad supercap doładowywanym z zasilania. To tylko sugestia.
3. Klawiatura. Wywal te kondziole. Raz, że debouncing można zrobić programowo, dwa, że zwieranie pojemności przyciskiem jest słabym pomysłem. Generuje to spore zakłócenia bo w krótkim czasie wyzwalasz sporą energię kondensatora. Jeśli chcesz je mieć to zrób filtry RC jak należy.
4. Co to jest IC1 i IC4? Jeśli to jakieś drivery to czy dla włączonych wszystkich przekaźników nie przekraczasz maksymalnego ich prądu liczonego na scalak, nie na pin? Wydaje mi się, że tak.
5. Sterowanie MAX485. W stanie nieustalonym po resecie procesora pin DR/RE jest w stanie 1, co włącza nadajnik i blokuje całą transmisję po rs485. Rezystor powinien być nie do Vcc lecz do GND, dzięki temu będziesz miał włączony odbiornik, co nie wpłynie na transmisję.
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#40
10 Feb 2012 19:54 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Dziekuję za uwagi.
1. Co do zasilania to rzeczywiście nie wprowadziłem zmiany z 10 na 16-25v ale i tak by tam trafiły 16V gdyż mam sporo takich kondensatorów w takich samych obudowach ale na napięcia 10V i 16V.
Dioda w zasilaniu jest montowana tylko w fazie testów i zabezpiecza przed zamianą biegunów w razie pomyłki. Zasilam układ stabilizowanym napięciem 12V/4A.
2. RTC - mam zastosowane baterię CR2032 ale chętnie wysłucham uwag na temat alternatywnej możliwości awaryjnego zasilania , gdyż osobiście nie lubię baterii na moich PCB. Czytałem że można zastosować kondensator 0.47F ale gdzie ja upchnę na PCB takiego "lapsa" ? Chyba prościej pozostawić baterię i dać ewentualnie test stanu baterii poprzez ADC. Nie wiem czy to potrzebne gdyż na takiej bateryjce PCF i tak będzie chodził wieki a samo testowanie stanu przez ADC także powolutku wypompuję mi bateryjkę. Chyba że się mylę..
3. Kondensatory wyrzucone. Debouncing rzeczywiście będę realizował programowo.
4. Drivery to ULN2803. Używałem ich wcześniej z tymi przekaźnikami i nie miałem problemów. Fakt że nie sprawdziłem jak bardzo można je obciążać. Zaraz sprawdzę.
5. Moja pomyłka . To niedopatrzenie by się w moim przypadku na 100% zemściło. Zresztą akurat o ten moduł obawiam się najbardziej.
Identyczne rozwiązanie co do RS485 mam zamiar zastosować we wszystkich innych modułach jakie będą pracować w mojej sieci więc zrobię wszystko aby były tak zrealizowane aby pracowały bez zastrzeżeń.
Jeszcze mam pytanko na temat sterowania przepustnicą.
Muszę wyprowadzić z procesora 4 linie (przepustnica odbiera jako ustawienia pozycji kod BCD 0-15 pozycji otwarcia) aby wysterować przepustnicę. Odległość na jaką będę je musiał wyprowadzić to kilka metrów( pewnie przekroczę 5) . I teraz pytanie jak je odizolować. Myślałem o optoizolacji i tak też zrobiłem ale nie do końca jest to prawdziwa optoizolacja gdyż zasilam transoptory i tak z tego samego źródła. Nie chcę ładować na PCB kolejnej przetwornicy. Chcę tylko zabezpieczyć piny procesora. Macie może koledzy jakąś alternatywę dla mojego chyba kiepskiego rozwiązania? A może nie ma potrzeby izolowania tych pinów?
Drugie pytanie to czy jednak magistralę 1wire można by izolować optycznie za pomocą szybkich transoptorów? Wiem że może przesadzam ale linia będzie dośc długa a i cały sterownik jaki wykonam ma działać porządnie gdyż to już nie będzie zabawka tylko urządzenie które będzie sterować całym systemem ogrzewania i wentylacji .
Nie może się po prostu zawieszać w przypadku zapchania przepustowości RS485 , nie może "się nic zjarać" w przypadku uszkodzenia DS-a (uszkodzenie czujnika, przewodu,zwarcie itd).
A taka optoizolacja by mi to przykładowo dla linii 1wire wyeliminowała. Wiem że chcę zrobić armatę na muchy ale lepiej strzelić raz z armaty niż dać się "obsr.. " muchom :D
|
|
| Back to top |
|
 |
danthe Poziom 20

Joined: 28 Nov 2003 Posts: 932 Location: niewielka wieś k. Augustowa
|
#41
12 Feb 2012 17:17 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
| Quote: |
| 2. RTC - mam zastosowane baterię CR2032 ale chętnie wysłucham uwag na temat alternatywnej możliwości awaryjnego zasilania , gdyż osobiście nie lubię baterii na moich PCB. Czytałem że można zastosować kondensator 0.47F ale gdzie ja upchnę na PCB takiego "lapsa" ? Chyba prościej pozostawić baterię i dać ewentualnie test stanu baterii poprzez ADC. Nie wiem czy to potrzebne gdyż na takiej bateryjce PCF i tak będzie chodził wieki a samo testowanie stanu przez ADC także powolutku wypompuję mi bateryjkę. Chyba że się mylę.. |
Kondensator 3F (tu przykład) ma wymiary 20,2 mm średnica, 6,5 mm wysokość. Gniazdko na baterię CR2032 - odpowiednio 22,5 mm i 8,9 mm. Jakoś wydaje mi się że GOLD CAP jest nieco mniejszy.
|
|
| Back to top |
|
 |
tmf Poziom 24

Joined: 12 Aug 2009 Posts: 4766 Location: Katowice
|
#42
13 Feb 2012 11:22 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
ad 1. Ok, jeśli masz stabilizator przed to jest w porządku.
ad 2. CuperCapy są małe, jak kolega wyżej napisał wyjdzie to mniejsze niż bateria. Potrzebujesz jeszcze diodę do doładowywania kondensatora.
ad 3. Kondensatory mogą być, tylko nie rozładowywuj ich przez switcha. Albo tak jak piszesz po prostu je wyrzuć i zrób debouncing programowy.
Co do optoizolacji - nie popadajmy w paranoję. Zwykły filtr RC + diody zabezpieczające są IMHO wystarczające. Tak samo nie ma sensu aż tak cudować z 1-wire.
|
|
| Back to top |
|
 |
Google

|
#
13 Feb 2012 11:22 |
|
|
|
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
|
| Back to top |
|
 |
RomanFilipecki Poziom 3

Joined: 22 Jun 2007 Posts: 7 Location: Kielce
|
#44
19 Feb 2012 09:12 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Głupia sprawa ale złącza śrubowe ARK doprowadzające zasilanie 230VAC powinny mieć raster 7,5 mm a nie 5,08, spójrz na odległości ścieżek po stronie sieciowej i DC oraz odległość N i L koło bezpiecznika
Roman
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#45
19 Feb 2012 11:34 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Co do złącz ARK to rzeczywiście odległości są małe ale spowodowane jest to tym iż mam cały karton tych złącz na stanie które zostały mi po modułach jakie kiedyś robiłem.
Płytki już wytrawione i czekają na wiercenie. Proszę mi wierzyć ale na "żywo" odległości nie wyglądają na taki minimalne.
Bardziej bałem się o ścieżki przy M128.
Miałem też dylemat czy zastosować warystor ale wydał mi się przesadą.
Na fotkach są także trzy małe płytki , jak zapewne zauważycie odpowiadają pinologią przekaźnikom .
I rzeczywiście zostaną zastosowane jako "przekaźniki" , tyle że elementem wykonawczym będzie triak. Chciałem dla testu sprawdzić jak będzie działać sterowanie pompami poprzez optotriak-triak. Jak nie będzie działać poprawnie to wyciągnę taką płyteczkę i wlutuję przekaźnik. A jak będzie działać to zastosuję takie płytki zamiast większości przekaźników.
Po prostu musiałem to sprawdzić a nie chciałem projektować na płytce głównej sterowania opartego na triakach gdyż w przypadku jakichś problemów całe PCB poszło by do kosza , a tak wlutuję przekaźnik i po sprawie. A nawet jak kiedyś uszkodził by się triak w takiej płytce to mogę najzwyczajniej w świecie wyciągnąć uszkodzony modulik i włożyć nowy. :D
edit:
Wytrawiłem płytki. Poniżej zamieszczam fotki :D .
Mam spore problemy z tonerem drukarki. Poprzednio płytki jakie robiłem wychodziły (prawie idealnie) ale robiłem je na oryginalnym tonerze Samsung-a . Teraz zakupiłem toner w (nie będę ukrywał , niech będzie to przestrogą dla innych) w Olinex -ie za 170PLN i toner jest po prostu "gówniany". Mam spore problemy z przenoszeniem tonera na płytki. Jak już prawie go wtopię w miedź to po wytrawieniu okazuje się że poligony i ścieżki są podtrawione. Próbowałem już na różnym stopniu zaciemnienia ale to samo. Jak zużyję ten pseudo toner to już nigdy nie zakupię nieoryginalnego. Ale to tak na marginesie. Zresztą zobaczcie sami jak "pożarło" mi znowu poligony.
Kolejne fotki z postępami przy tworzeniu frontu i klawiatury .Miało zostać użyte szkło lakierowane na czarno ale szklarz zwalił mnie z nóg ceną jaką podał za wycinanie otworów wiec użyłem 2mm aluminium :D
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#46
11 Mar 2012 21:10 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Witam
Właśnie zaczynam pisanie programu do sterownika. Jako że jest to jeden z moich pierwszych programów w C to już potrzebuję pomocy..
Dodam że oczywiście nie chcę żadnych gotowców bo się w ten sposób niczego nie nauczę ale.
Pierwszy problem związany jest z wykrywaniem zewnętrznych przerwań.
Otóż pod piny obsługujące wykrywanie zewnętrznych przerwań INT4-INT7 mam podłączone transoptory które podają na piny procesora stan niski w momencie wykrycia zdarzenia. Oczywiście piny są zewnętrznie podciągnięte do VCC.
Przerwanie ma zostać wykryte w momencie pojawienia się stanu niskiego na pinie , ale.. No właśnie jest "ale" jak tego dokonać. PRzekopywałem elektrodę i net w poszukiwaniu prostych przykładów ale albo przykłady te są pisane w sposób niezrozumiały dla mnie albo są to przerwania głównie od USART. A ja potrzebuję maksymalnie proste wykrycie przerwania. Po wykryciu ma wykonać się jakaś procedurka.
Przekopywałem datasheet od atmega 128 i owszem widzę bity kontrolne i całą resztę ale jestem jeszcze zbyt ciemny.
Mógłby mi ktoś z kolegów przybliżyć jak skonfigurować i wykrywać przerwanie np. dla INT7 ? W Bascomie to wszystko było proste jak "drut" a w C trzeba się nagimnastykować jak... :D
Znalazłem taki fragmencik kodu (fakt że obsługujący impulsator) :
DDRD = 0; PORTD = (1<<PD2)|(1<<PD3); MCUCR = 10; // przerwanie INT0 i INT1 reagujące na opadające zbocze GICR = (1<<INT0)|(1<<INT1); // aktywacja przerwań INT0 i INT1 sei(); SIGNAL(SIG_INTERRUPT0) { ++dystans; } SIGNAL(SIG_INTERRUPT1) { if(dystans > 0) --dystans; }
I takie rozwiązanie było by dla mnie proste i idealne ale.. nie wiem jak skonfigurować rejestr MCUCR i GICR w M128. Notę katalogową od procesora mam prawie rozszarpane.. i nic...
|
|
| Back to top |
|
 |
tmf Poziom 24

Joined: 12 Aug 2009 Posts: 4766 Location: Katowice
|
#47
11 Mar 2012 22:50 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Zobacz opis rejestrów EICRA i EICRB oraz EIMSK - są związane z przerwaniami zewnętrznymi INT0-7. Miejmy nadzieję, że do nich masz podłączone te transoptory, bo jak nie to... kaplica.
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#48
11 Mar 2012 23:00 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
A więc tak. Wyskrobałem taki kodzik. Przedstawiam go w tej formie gdyż nie chcę wklejać całego kodu.
Piny pod które mam podpięte transoptory to E4-E7 więc tak jak trzeba.
Oto kodzik. Czy to powinno zadziałać? Chyba tak..
#define PRZERW4 (1<<PE4) //ustawienie pinu do którego podłączona jest TRANSOPTOR #define PRZERW5 (1<<PE5) //ustawienie pinu do którego podłączona jest TRANSOPTOR #define PRZERW6 (1<<PE6) //ustawienie pinu do którego podłączona jest TRANSOPTOR #define PRZERW7 (1<<PE7) //ustawienie pinu do którego podłączona jest TRANSOPTOR DDRE &= ~(PRZERW4); //PIN E4 - WEJŚCIE (NIE KONIECZNE ALE DLA CZYTELNOŚCI KODU) DDRE &= ~(PRZERW5); //PIN E5 - WEJŚCIE DDRE &= ~(PRZERW6); //PIN E6 - WEJŚCIE DDRE &= ~(PRZERW7); //PIN E7 - WEJŚCIE PORTE |=PRZERW4; //PODCIĄGNIĘCIE PINU DO VCC PORTE |=PRZERW5; //PODCIĄGNIĘCIE PINU DO VCC PORTE |=PRZERW6; //PODCIĄGNIĘCIE PINU DO VCC PORTE |=PRZERW7; //PODCIĄGNIĘCIE PINU DO VCC EICRB = (1<<ISC41)|(1<<ISC51)|(1<<ISC61)|(1<<ISC71); //PRZERWANIE USTAWIONE NA ZBOCZE OPADAJĄCE EIMSK = (1<<INT4)|(1<<INT5)|(1<<INT6)|(1<<INT7); ISR(INT4_vect) //Funkcja wywołana podczas przerwania { //COŚ TAM ZRÓB } ISR(INT5_vect) //Funkcja wywołana podczas przerwania { //COŚ TAM ZRÓB } ISR(INT6_vect) //Funkcja wywołana podczas przerwania { //COŚ TAM ZRÓB } ISR(INT7_vect) //Funkcja wywołana podczas przerwania { //COŚ TAM ZRÓB }
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#49
15 Mar 2012 20:31 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Poza poprzednim pytaniem (które już sprawdziłem jesli chodzi o INT4- i działa) mam kolejne odnośnie PCF 8583p. Chodzi mi o to czy posiada może ktoś jakiś prosty fragment kodu odpowiedzialny za odczyt i dekodowanie daty z PCF-a? Odczytać godziny ,minuty i sekundy potrafię ale mi zależy głównie na dniach tygodnia a nie potrafię przeprowadzić tego okropnego przesuwania i mieszania bitami. Nawet nie jest mi potrzebny miesiąc i dzień miesiąca.Zależy mi tylko na tym abym wiedział jaki jest dzień tygodnia.
edit: OK, obsługa PCF-a opanowana już ze zrozumieniem.
Pomógł mi temat w którym kolega Villen dokładnie opisuje odczyt i przesunięcia bitowe potrzebne do wyciągnięcia wszystkich danych.
|
|
| Back to top |
|
 |
adambehnke Poziom 19

Joined: 06 Jun 2008 Posts: 651 Location: Gdańsk
|
#50
09 Apr 2012 22:48 Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). |
|
|
|
Tak wygląda mój sposób na odczyt PCF-a:
//odczyt 6 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC I2C_read_buf( PCF8583_ADDR, 0x01, 6, bufor ); //4 sekundy = bcd2dec( bufor[ss] ); minuty = bcd2dec( bufor[mm] ); godziny = bcd2dec( bufor[hh] ); dzien=( bufor[dz] ); miesiac=( bufor[msc] ); //zerujemy 6 ostatnich bitów w których pamiętany jest dzien miesiaca aby odczytac rok rok= ( dzien >> 6 ); rok = bcd2dec( rok ); //zerujemy dwa najstarsze bity w których pamiętany jest rok dzien=(dzien <<2); dzien=(dzien>>2); dzien=bcd2dec(dzien); dzient=( miesiac >> 5 ); dzient=bcd2dec(dzient); miesiac=(miesiac<<3); miesiac=(miesiac>>3); miesiac=bcd2dec(miesiac); f_pcf=0;
Trochę się męczę jeszcze z przesunięciami bitowymi i zerowaniem poszczególnych bitów ale ważne że kod działa poprawnie .
Prace nad moim urządzeniem posuwają się powoli do przodu.
Obecnie "walczę" z RS485.
Otóż, jest tak:
Na żądanie mastera (w tej chwili PC) mój moduł wysyła odpowiedź (raport) w postaci string-a :
<001_@_/A1/B23/C23/D25/E21/F23/G40/H23/I38/J0/K25/L80/M25/N37/O2/P1/R255/S8/T5/U255/V255/W255/X0/Y0/Z0/Q21/*17/#0/$0/&0/?0/%214>
Pytanie jest takie , jak obliczyć CRC ? Szukałem już chyba wszędzie i czytałem o CRC16 i 32 ale nie mam bladego pojęcia jak to wyliczyć z tak dużego string-a.
Finalnie CRC będzie obliczane i porównywane w każdym module jaki będzie pracował w mojej sieci. Mógłbym sobie stworzyć jakiś własny sposób na sumę kontrolną ale aplikację na PC piszę w Visual Studio i tam mam kontrolki do obliczania CRC16 i CRC32 i tego się muszę trzymać.
Może ktoś z kolegów mógłby podpowiedzieć jak ugryźć ten problem. Czy wyliczać CRC dla całego stringa czy tylko dla części (dla mnie to by było trochę nie tak).
|
|
| Back to top |
|
 |