Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Assembler na C

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 14 paź 2018, o 23:19

Jak przerobić,zmienić ten kod, aby miał 64/64 sek.
Jak by się udało to by był kod na liczniku w asm.
Kod na liczniku w j.C , na preskalerze 1024 ,juz mam, ma 15 linijek , przerobiłam 2 dni temu z innego kodu.

kod:

.nolist
.include "m8adef.inc"
. main:
; ldi r16, high(RAMEND) ; init stack pointer
; out SPH, r16
ldi r16, low (RAMEND) ; init stack pointer
out SPL, r16
out TCCR1B,r16 ; Set prescaler to 1024
loop:
in r17, TCNT0 ; If the counter is >= 64000,
cpi r17, 128 ; branch to dim
brsh dim ; otherwise continue to light
light:
sbi PORTB, 0
rjmp loop
dim:
cbi PORTB,0
rjmp loop
-----------------------------------

https://electronics.stackexchange.com/q ... e-not-work

https://www.google.pl/search?q=Atmega8+ ... 00&bih=471

https://www.google.pl/search?q=Atmega+a ... rt=90&sa=N

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 17 paź 2018, o 11:58

Największe rzeczy osiągają ludzie, którzy służą innym.

Więcej sentencji na:

https://www.sentencje.com.pl/

AVR Assembler Tutorial 3

https://www.instructables.com/id/Comman ... for-Ard-2/
------------------------------------------------------------------------------
Jak w kodzie asm będzie wyglądał taki zapis:
main ()
{
DDRB = (1<<PB1)|(1<<PB2);
PORTB = PORTB | (1 << PB1);
oraz
PORTB ^= (1<<PB1)|(1<<PB2);
[/quote]

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Assembler na C

Postautor: r-mik » 17 paź 2018, o 12:50

Największe rzeczy osiągają ludzie, którzy służą innym.
Jak o. Tadeusz :-)
Jak w kodzie asm będzie wyglądał taki zapis:
main ()
{
DDRB = (1<<PB1)|(1<<PB2);
PORTB = PORTB | (1 << PB1);
oraz
PORTB ^= (1<<PB1)|(1<<PB2);
Skompiluj i obejrzyj plik *lss.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 17 paź 2018, o 15:50

r-mik napisał:
"Skompiluj i obejrzyj plik *lss."

Jakim programem to zrobić ,spróbuję,jeśli nie dam rady,spytam jak to zrobić tym programem.

https://www.elektroda.pl/rtvforum/topic612705.html

https://www.elektroda.pl/rtvforum/topic612705-30.html

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 18 paź 2018, o 14:18

Już się nauczyłam jak mieć rozwinięcie asm,ale ciekawa jestem w jakim to programie jest ten plik *lss,czy jest w Eclipse ?.
Udało mi się pprzerobić kod C na ASM.
Działa jest zmiana polaryzacji co 64 sekund.
Teraz spróbuję przerobić kod C na liczniku i preskalerze 1024 na ASM.

W symlatorze w kodzie C pokazuje Cycle Couter 11 us i Stop Watch 11us.
W kodzie ASM pokazuje 0 (zero).
Czy to znaczy,że ten sam kod w C , jest bardziej idealny w ASM ,
jeśli chodzi o duty 50%?.

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{

unsigned int licznik1 = 0;
DDRB = (1<<PB1)|(1<<PB2);
PORTB = PORTB | (1 << PB1);

while(1)

{

PORTB ^= (1<<PB1)|(1<<PB2);
_delay_us(64000000);

}
}

-------------------------------------------------------
Przerobiony kod ASM z kodu C powyżej.
Działa jest zmiana polaryzacji co 64 sekund.
Teraz sprubóję przerobic kod C na liczniku i preskalerze 1024 na ASM.

Kod ASM

.nolist
.include "m8adef.inc"
. main:
LDI R24,0x06
OUT 0x17,R24
SBI 0x18,1
LDI R25,0x06
IN R24,0x18
EOR R24,R25
OUT 0x18,R24
SER R18
LDI R19,0x4F
LDI R20,0xC3
SUBI R18,0x01
SBCI R19,0x00
SBCI R20,0x00
BRNE PC-0x03
RJMP PC+0x0001
NOP
RJMP PC-0x000C
CLI
RJMP PC-0x0000
Ostatnio zmieniony 18 paź 2018, o 23:35 przez Ania30, łącznie zmieniany 1 raz.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 18 paź 2018, o 16:45

Mam już kod w ASM na liczniku i preskalerze1024,zrobiony z kodu C.
Zajmuje 23 linijki i działa 64/64 sekund.
Brakuje mi jeszcze abym w ostatnim kodzie ACeKa mogła mieć 64/64 sek przy wew.1MHz.
Co trzeba napisać aby zmienić parametry w rejestrach ldi r20, 0xa1 ldi r21, 0x07.
Teraz przydało by mi się coś co zmieni kod ASM na kod C.

Ania30
-
-
Posty: 124
Rejestracja: 31 lip 2018, o 07:57

Re: Assembler na C

Postautor: Ania30 » 20 paź 2018, o 09:20

Potrzebuję na procesor Attiny 2313A i Atmega8A,Atmega328P.
Ostatni kod ACeKA jest mi potrzebny na Attiny 13A,a do niej kwarcu nie podłączy się.
Elektronika Praktyczna i inne polskie czasopisma i fora, z założenia,mają być dla czytelnika ,a nie odwrotnie, powinny propagować i uczyć elektroniki,a jak jest w praktyce ,to widać,odwrócono kota ogonem,jak to mają w zwyczaju źli ludzie.
Porady tzw. etatowych"fachowców",administratorów, z tych forów,są na niskim poziomie fachowym i moralnym,ratują te fora czytelnicy np.tacy jak ACeK , którzy dają porady o niebo lepsze od administratorów,mało tego, administratorzy blokują takich pomagających zamykając wątek.
Potrzebne mi informacje znalazłam na zagranicznych forach,gdzie fachowość i poziom moralny ,kultura odpowiedzi ,jest o wiele na wyższym poziomie.
Jeśli coś jest na polskich forach ,to są to przetłumaczenia z zagranicznych for i czasopism,które administratorzy podają jakie swoje .
Tutaj wszystko jest tajemnicą nawet to ,z jakiego programu jest plik lss,jak zrobić rozwinięcie asm.
Porady są błędne i nie fachowe,niepomocne, to nie jest flirt,ale użeranie się,jednym słowem kompromitacja, obciach i żenada w wykonaniu odpowiadającego,mordęga,a nie flirt dla pytającego.

Awatar użytkownika
r-mik
-
-
Posty: 351
Rejestracja: 14 cze 2005, o 19:18
Lokalizacja: Wawa
Kontaktowanie:

Re: Assembler na C

Postautor: r-mik » 20 paź 2018, o 10:25

poczytaj sobie o Tesli on też chciał uniezależnić ludzi od monopolistów i dac światu wolną energię i za to go wkończyli i okradli.. smutne.
O perpetuum mobile jest osobny wątek.
Potrzebuję na procesor Attiny 2313A i Atmega8A,Atmega328P.
Ostatni kod ACeKA jest mi potrzebny na Attiny 13A,a do niej kwarcu nie podłączy się.
NIEPRAWDA!
Przeczytaj notę katalogową układu zanim napiszesz głupotę.
Porady są błędne i nie fachowe,niepomocne,
Mamy właśnie tego przykład. Błędna informacja napisana przez użytkownika.
Potrzebne mi informacje znalazłam na zagranicznych forach,gdzie fachowość i poziom moralny ,kultura odpowiedzi ,jest o wiele na wyższym poziomie.
Oto kolejny przykład niszczenia forum przez użytkownika. Rozwiązał problem ale nie podzielił się rozwiązaniem z innymi. Jaki jest więc sens pomagać? Forum ma służyć więcej niż jednemu wybranemu.
Jeśli coś jest na polskich forach ,to są to przetłumaczenia z zagranicznych for i czasopism,które administratorzy podają jakie swoje .
Konkretne przykłady takich przypadków na forum EP proszę podać.
Tutaj wszystko jest tajemnicą nawet to ,z jakiego programu jest plik lss,jak zrobić rozwinięcie asm.
Wszystko jest napisane w dokumentacji. Bez dokumentacji wystarczy przejrzeć katalog, w którym znajdują się pliki wynikowe.
obciach i żenada w wykonaniu odpowiadającego
Obciach i żenada to wszystkie wątki związane z tym super precyzyjnym generatorem, który ma służyć do magicznych operacji na wodzie.

Problem rozwiązany, autorka nie chce się podzielić rozwiązaniem,czym przyczynia się do niszczenia forum, temat zamykam.

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 23 gości