Układ z iButton'ami 1990
Układ z iButton'ami 1990
Proszę o pomoc, a w sumie napisanie w całości
programu na ATTINY2313. Praca układu ma polegać na włączaniu przekaźnika po odczytaniu nr pastylki iButton 1990 i jego weryfikacji z danymi z EEPROMU co oczywiście wiąże się z koniecznością wcześniejszej rejestracji pastylki. Ilość obsługiwanych - powiedzmy 5szt. Sposób działania układu - przyłożenie pastylki zgodnej - stan wysoki na wyjściu, pastylka niezgodna - brak reakcji. Dodatkowo układ ma działać w trybie toggle tzn przyłożenie pastylki (zgodnej) "włącz" (i trzymaj) do momentu ponownego przyłożenia pastylki zgodnej (wtedy "wyłącz"). Dodatkowo można właczyć jako bajer opcję migotania diody (zielona) w adapterze (czytniq) do iButtona - jak i kiedy - Wy decydujecie. Reszta należy do Waszej pomysłowości. PS Ciągle chcę zacząć z uC i jakoś nigdy nie mogę.. wiem jak cenna to wiedza lecz nie mogę póki co zaangażować się w to całkowicie. Mam na myśli ATTINY2313 właśnie, ponieważ posiadan knigę Góreckiego i płytkę do tego kursu (..no do 90S2313) ale nie dam 30zł za to jak mogę kupić TINIEGO za apr 5.9zł. Dzięki!!
Witam!
A czy znaleźć coś własnymi siłami jest tak trudno?
Ja znalazłem na Elportalu coś takiego:
http://elportal.pl/pdf/k07/67_020.pdf
i do tego jeszcze to:
http://elportal.pl/pdf/k07/62_020.pdf
Takie rzeczy znajdziesz np. na: http://elportal.pl/index.php?module=Con ... 66&meid=19
Ale do tego trzeba pięć minut "myślunku"...
Co do programów na 90S2313 - był już temat "co zamiast": http://elportal.pl/forum/viewtopic.php?t=2965,
i w tymże stoi jak "byk", że programy pisane dla tego uP działają bez problemów na tiny2313 - po odpowiednim ustawieniu fusebyte'ów...
Pozdrawiam!
Marcin "Max" G.
A czy znaleźć coś własnymi siłami jest tak trudno?
Ja znalazłem na Elportalu coś takiego:
http://elportal.pl/pdf/k07/67_020.pdf
i do tego jeszcze to:
http://elportal.pl/pdf/k07/62_020.pdf
Takie rzeczy znajdziesz np. na: http://elportal.pl/index.php?module=Con ... 66&meid=19
Ale do tego trzeba pięć minut "myślunku"...
Co do programów na 90S2313 - był już temat "co zamiast": http://elportal.pl/forum/viewtopic.php?t=2965,
i w tymże stoi jak "byk", że programy pisane dla tego uP działają bez problemów na tiny2313 - po odpowiednim ustawieniu fusebyte'ów...
Pozdrawiam!
Marcin "Max" G.
Wiem, że były takie projekty ale jakbyś dołożył choćby sekundę "pomyślunku" to nie chodzi mi o hardware tylko gotowy program. I nie interesuje mnie sterowanie 2 milionów przekaźników i serwa tylko jednego przekaźnika i nic poza tym (no i powtarzam - wyłącznie na ATTINY2313 a nie jakiś 89C2051). Liczyłem na to, że ktoś coś takiego ma na bascoma i się "podzieli". Nie znam się na tym, przyznaję się i nie mam czasu, żeby teraz do tego podejść - potrzebuję gotowca. Poza tym nie pisałem nic o wątpliwościach czy to będzie działać na TINYM tylko, że mimo, iż płytka obsługuje 90S2313 to ja w niej chcę zaprogramować ATINY2313. To miałem na myśli. Mimo wszystko dzięki za poświęcony czas.
Ale zaprogramowanie tiny2313 przez ISP przebiega dokładnie tak samo jak starszego 'brata'... Nic nie musisz zmieniać - wystarczy tylko odpowiednio fuse'y zaprogramować.
A oprogramowanie do w/w jest tutaj: https://elportal.pl/index.php?module=Co ... 10&meid=-1
Co do programu dla 89C2051 - można go w prosty sposób przerobić dla tiny2313. Parę deklaracji portów, ustawienia timer'ow i to w zasadzie wszystko. Dosłownie 10 minut i gotowe.
A oprogramowanie do w/w jest tutaj: https://elportal.pl/index.php?module=Co ... 10&meid=-1
Co do programu dla 89C2051 - można go w prosty sposób przerobić dla tiny2313. Parę deklaracji portów, ustawienia timer'ow i to w zasadzie wszystko. Dosłownie 10 minut i gotowe.
Pozdawiam!!
Ja wysadzić niczego w powietrze nie chcę
A opis fusebite'ów masz w DS-ie tiny2313...
Nie wiem jak chcesz to taktować, ale domyślnie tiny ma włączony wewnętrzny oscylator 8MHz i podział przez 8 - czyli pracuje tak, jak 90S2313 z zegarem 1MHz...
Ostatnio zmieniony 03 cze 2006, 17:42 przez marcing, łącznie zmieniany 1 raz.
..dobra skończmy to bo staje się infantylne. Wiem gdzie szukać danych, zresztą mam to wydrukowane.
michal17 - liczę na Ciebie.
taktowanie, hmm, nie wiem sam. Układ ma pracować w ciężkich warunkach - to chyba kwarc zastosuję. Nie wiem jak z tym taktowaniem wewnętrznym, jego stabilnością itd. Raczej pozostańmy przy kwarcu.
A ile ma być tych układów
[ Dodano: 2006-06-05, 15:15 ]
[ Dodano: 2006-06-05, 15:15 ]
Kod: Zaznacz cały
'------------------------------------------'
'autorem kodu jest Michał Olejniczak''
'michal.olejniczak@op.pl---------------'
'------------------------------------------'
'dołączyć czytnik pastylek do portd.0
'dołączyć przekażnik i zieloną diodę do portd.1
'dołączyć czerwoną diodę do portd.2
'do portów portd.3 do portd.6 włącznie podłączyć dipswich
'program jest na cztery do pięciu układów
'może zawierać błędy ale spróbuję je szybko znaleźć
Config 1wire = Portd.0
Config Portd = 0111111
Portd = 0000000
Dim Adres(8)as Byte
Dim A As Eram String * 8
Dim B As Eram String * 8
Dim C As Eram String * 8
Dim D As Eram String * 8
'Dim E As Eram String * 8 'jeśli pięć układów to usunąć pierwszy apostrof
Do
If Pind.0 = 1 Then
Gosub Czytaj 'sprawdzanie numeru urzytej pastylki
Else
Gosub Rejestroj
End If
Loop
End 'end program
Czytaj:
Adres(1) = 1wsearchfirst() 'odbieranie numeru pastylki
If Adres(1) , 8 = A Or B Or C Or D Then 'or e Then 'jeśli pięć układów to usunąć pierwszy apostrof i Niebieskie then
Set Portd.1
Wait 10 'czas włączenia w sekundach
Reset Portd.1
Else 'jeśli adres się nie zgadza
Set Portd.2
Wait 5
Reset Portd.2
End If
Return
Rejestroj:
Adres(1) = 1wscarchfirst(0)
If Portd.3 = 1 And Err = 0 Then
Adres(1) , 8 = A
Else If Portd.4 = 1 And Err = 0 Then Adres(1) , 8 = B
Else If Portd.5 = 1 And Err = 0 Then Adres(1) , 8 = C
Else If Portd.6 = 1 And Err = 0 Then Adres(1) , 8 = D
'Else if Err = 0 then Adres(1) , 8 = C 'jeśli pięć układów to usunąć pierwszy apostrof
End If
Err = 0
Wait 3
ReturnKod: Zaznacz cały
'------------------------------------------'
'autorem kodu jest Michał Olejniczak''
'michal.olejniczak@op.pl---------------'
'------------------------------------------'
'dołączyć czytnik pastylek do portd.0
'dołączyć przekażnik do portd.1
'dołączyć diodę do portd.2
'do portów portd.3 do portd.6 włącznie podłączyć dipswich
'program jest na cztery do pięciu układów
'może zawierać błędy ale spróbuję je szybko znaleźć
Config 1wire = Portd.0
Config Portd = 0110000 'tu był błąd !!
Portd = 0000000
Dim Adres(8)as Byte
Dim A As Eram String * 8
Dim B As Eram String * 8
Dim C As Eram String * 8
Dim D As Eram String * 8
Dim E As Eram String * 8
Dim I as Byte
Do
If Pind.0 = 1 Then 'do rejestracji połączyć portd.0 z Vcc
Gosub Czytaj 'sprawdzanie numeru urzytej pastylki
Else
Gosub Rejestroj
End If
Loop
End 'end program
Czytaj:
Adres(1) = 1wsearchfirst() 'odbieranie numeru pastylki
If Adres(1) , 8 = A Or Adres(1) , 8 = B Or Adres(1) , 8 = C Or Adres(1) , 8 = D Or
Adres(1) , 8 = E Then
Set Portd.1
For I = 0 to 9
Set Portd.2
Waitus 500
Reset Portd.2
Waitus 500
Next
Reset Portd.1
Else 'jeśli adres się nie zgadza
Set Portd.2
Wait 5
Reset Portd.2
End If
Return
Rejestroj:
Adres(1) = 1wscarchfirst(0)
If Portd.3 = 1 And Err = 0 Then
Adres(1) , 8 = A
Else If Portd.4 = 1 And Err = 0 Then Adres(1) , 8 = B
Else If Portd.5 = 1 And Err = 0 Then Adres(1) , 8 = C
Else If Portd.6 = 1 And Err = 0 Then Adres(1) , 8 = D
Else if Err = 0 then Adres(1) , 8 = E
End If
Err = 0
Wait 3
Return[ Dodano: 2006-06-09, 21:26 ]
Jest jeszcze parę błądów (chodzi o IF ... THEN) . Wie ktś jaki błąd jest oznaczony kodem 53
[ Dodano: 2006-06-09, 21:36 ]
mam problem jeszcze z tym:
Kod: Zaznacz cały
If Adres(1) , 8 = A Or Adres(1) , 8 = B Or Adres(1) , 8 = C Or Adres(1) , 8 = D Or-
ZbeeGin
Kod błędu nr. 53 jest kodem wewnętrznym kompilatora: "Other error codes are internal ones. Please report them when you get them." Czyli masz szczęście wydobyć nowy kod
Ale zaraz, zaraz... Mnie tam wywala błąd nr 35...
A co chcesz osiągnąć pisząc: Adres(1),8? Są kwalifikatory w Bascom-ie ale dotyczą bitów: Adres(1).8 (kropka) i nijak się to ma do zmiennych typu String.
A co chcesz osiągnąć pisząc: Adres(1),8? Są kwalifikatory w Bascom-ie ale dotyczą bitów: Adres(1).8 (kropka) i nijak się to ma do zmiennych typu String.