Skocz do zawartości

Zastapienia mikrokontrolera at89c2051 kontrolerem ATTiny2313


Pomocna odpowiedź

Napisano

Witam, zbudowałem układ zgrzewarki, ale dopiero teraz zauważyłem, ze nie mam jak zaprogramować mikrokontroler at89c2051 i chcaiłem go zastąpic mikrokontrolerem ATTiny2313 i tutaj nasuwa się pytanie czy jest jakis program, który zmieni mi kod programowania z atmela na attiny?

@Kryma96, nie ma żadnego magicznego konwertera. Podaj jakieś szczegóły - jaki to program, co dokładnie robi i w jakim języku jest napisany. Raczej będziesz musiał się liczyć z samodzielnym przepisaniem kodu.

2 godziny temu, Kryma96 napisał:

który zmieni mi kod programowania z atmela na attiny?

Tak dla formalności Atmel to producent (obecnie Microchip), a ATtiny to rodzina mikrokontrolerów tego samego producenta 😉

  • Lubię! 1
(edytowany)

a wiec chce zbudować cos takiego http://pfmrc.eu/index.php/topic/55363-zgrzewarka-punktowa-do-ogniw-i-nie-tylko/ no i po złozeniu okazało się, że procesor at89c2051 ciezko jest zaprogramować i chciałem go zastąpić ATtiny2313 DIP20, ale nie wiem czy kod z tego pierwszego będzie bez problemu pasował na ten drugi, a jeśli nie to czy istnieje jakis konwerter kodów.  kod

$crystal = 12000000
$regfile = "89C2051.dat"


Seg_a Alias P1.0
Seg_b Alias P3.7
Seg_c Alias P1.6
Seg_d Alias P1.4
Seg_e Alias P1.3
Seg_f Alias P1.1
Seg_g Alias P1.2
Seg_h Alias P1.5


Buz_ Alias P3.5
In_ Alias P3.4
Out_ Alias P3.3
S1_ Alias P3.1
Jp_ Alias P3.0


Dim Count_time As Byte
Dim Temp As Byte


'  POCZĄTEK PROGRAMU

      Out_ = 1
      Buz_ = 1
      Seg_a = 1
      Seg_b = 0
      Seg_c = 0
      Seg_d = 1
      Seg_e = 1
      Seg_f = 1
      Seg_g = 1


   Count_time = 1


' POCZĄTEK PĘTLI GLOWNEJ

Do


If S1_ = 0 Then
   Waitms 40
Do
Loop Until S1_ = 1
   Waitms 40

Incr Count_time
 If Count_time > 10 Then Count_time = 1
Select Case Count_time
   Case 1:
      Seg_a = 1
      Seg_b = 0
      Seg_c = 0
      Seg_d = 1
      Seg_e = 1
      Seg_f = 1
      Seg_g = 1
   Case 2:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 1
      Seg_d = 0
      Seg_e = 0
      Seg_f = 1
      Seg_g = 0
   Case 3:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 0
      Seg_d = 0
      Seg_e = 1
      Seg_f = 1
      Seg_g = 0
   Case 4:
      Seg_a = 1
      Seg_b = 0
      Seg_c = 0
      Seg_d = 1
      Seg_e = 1
      Seg_f = 0
      Seg_g = 0
   Case 5:
      Seg_a = 0
      Seg_b = 1
      Seg_c = 0
      Seg_d = 0
      Seg_e = 1
      Seg_f = 0
      Seg_g = 0
   Case 6:
      Seg_a = 0
      Seg_b = 1
      Seg_c = 0
      Seg_d = 0
      Seg_e = 0
      Seg_f = 0
      Seg_g = 0
   Case 7:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 0
      Seg_d = 1
      Seg_e = 1
      Seg_f = 1
      Seg_g = 1
   Case 8:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 0
      Seg_d = 0
      Seg_e = 0
      Seg_f = 0
      Seg_g = 0
   Case 9:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 0
      Seg_d = 0
      Seg_e = 1
      Seg_f = 0
      Seg_g = 0
   Case 10:
      Seg_a = 0
      Seg_b = 0
      Seg_c = 0
      Seg_d = 0
      Seg_e = 0
      Seg_f = 0
      Seg_g = 1
End Select
End If

If In_ = 0 Then
   Waitms 50
      If Jp_ = 0 Then
            Seg_h = 0
            Out_ = 0
            For Temp = 1 To Count_time
            Waitms 100
            Next Temp
            Out_ = 1
            Seg_h = 1
            Buz_ = 0

      Elseif Jp_ = 1 Then
            Seg_h = 0
            Out_ = 0
            For Temp = 1 To Count_time
            Waitms 10
            Next Temp
            Out_ = 1
            Seg_h = 1
            Buz_ = 0
            End If
   Do
   Loop Until In_ = 1
   Waitms 20
   Buz_ = 1
End If
Loop

End

 

Edytowano przez Treker
Poprawiłem formatowanie.

@Kryma96 akurat tak prosty program i to jeszcze w Bascomie chyba da się przekompilować na innych procesor bez problemu. Wołam @Sabre, bo on będzie wiedział więcej w tej kwestii 😉

  • Lubię! 1

Da się zamienić, trzeba tylko popoprawiać definicje pinów z Bascoma na Bascoma AVR skompilować i powinno działać. Generalnie składnia jest taka sama ale w Bascomie AVR piny definiuje się albo przez PortB.1 albo PinB.1, nie pamiętam które z tych słów bo to jest pokręcone. Instalujesz demo Bascoma AVR, przeklajasz kod, poprawiasz definicje zgodnie z heplem, kompilujesz i programujesz. Musisz zaopatrzyć się w jakiś programator USB, którym zaprogramujesz spod Bascoma. Ewentulanie wiem, że jakoś się da przez Arduino zaprogramować jakiegoś AVRa, ale to już nie moja bajka.

  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...