Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
przemo
Tłuste zero
Dołączył: 08 Sty 2008
Posty: 96
Przeczytał: 0 tematów
|
Wysłany: Śro 21:36, 16 Cze 2010 Temat postu: |
|
|
Rozwiazanie rodzia wedlug benka na 0pkt
|
|
Powrót do góry |
|
|
|
|
robert_bytom
Sado-Elektro - wiecie gdzie ma lutownice
Dołączył: 21 Paź 2006
Posty: 778
Przeczytał: 0 tematów
Skąd: Bytom
|
Wysłany: Śro 21:49, 16 Cze 2010 Temat postu: |
|
|
Moja wersja spisana teraz na szybko na kolanie (oceniona na 9) była mniej więcej taka:
Kod: |
.ORG 0
RJMP RESET
.ORG 0xXXXX ;wektor przerwań od przetwornika AD
RJMP PRZETW_AD
RESET:
LDI R16,HIGH(RAMEND) ;inicjalizacja stosu
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,$FF ;porty B,C,D jako wyjścia
OUT DDRB,R16
OUT DDRC,R16
OUT DDRD,R16
(...) ;inicjalizacja A/C
SEI ;włączenie przerwań
(...) ;program główny
PRZETW_AD:
IN R0,ADCH ;pobranie 8 najstarszych bitów
LDI R16,0 ;setki
LDI R17,0 ;dziesiątki
LDI R18,0 ;jedności
LDI R19,200 ;konwersja na BCD
CP R0,R19
BRCS DAL1
CLC
SUB R0,R19
LDI R16,2
DAL1:
LDI R19,100
CP R0,R19
BRCS DAL2
CLC
SUB R0,R19
LDI R16,1
DAL2:
LDI R19,10
DAL3:
CP R0,R19
BRCS DAL4
CLC
SUB R0,R19
INC R17
RJMP DAL3
DAL4:
MOV R18,R0
IN R0,ADCL ;pobranie dwóch najmłodszych bitów (są na dwóch najstarszych pozycjach w ADCL)
LDI R19,128 ;zaokrąglenie starszego z bitów i korekcja dziesiętna R17 i R18
CP R0,R19
BRCS DAL5
INC R18
CPI R18,10
BRCS DAL5
CLC
SUBI R18,10
INC R17
CPI R17,10
BRCS DAL5
CLC
SUBI R17,10
INC R16
DAL5:
LDI R30,LOW(TAB) ;zamiana liczby na kod wyświetlacza 7-seg
LDI R31,HIGH(TAB)
MOV R0,R16
CALL INKREMENTUJ_Z
LPM
OUT PORTD,R0
LDI R30,LOW(TAB)
LDI R31,HIGH(TAB)
MOV R0,R17
CALL INKREMENTUJ_Z
LPM
OUT PORTC,R0
LDI R30,LOW(TAB)
LDI R31,HIGH(TAB)
MOV R0,R18
CALL INKREMENTUJ_Z
LPM
OUT PORTB,R0
CBI PORTD,7 ;zapalanie kropki
RETI
INKREMENTUJ_Z:
CLC
ADD R30,R0
BRCC KONIEC
INC R31
KONIEC:
RET
TAB: .DB 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
.END
|
Sorki za ewentualne błędy, bo nie wiem czy na 100% udało mi się to powielić.
Ostatnio zmieniony przez robert_bytom dnia Śro 22:35, 16 Cze 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
rodzio
Chuda Jedynka
Dołączył: 11 Sty 2007
Posty: 127
Przeczytał: 0 tematów
|
Wysłany: Śro 21:52, 16 Cze 2010 Temat postu: |
|
|
Bo moje rozwiązanie na egz posiadało błędy. Takie jak CPI na niskich rejestrach i założyłem sobie, że ADC jest wyrównane do prawej.
A w ogóle 0 chyba jest za podzielenie się moją pracą z kolegą. Bo mamy słowo w słowo to samo.
Oczywiście jeśli ktoś dostrzega błąd w tym rozwiązaniu, proszę się podzielić.
Ostatnio zmieniony przez rodzio dnia Śro 22:05, 16 Cze 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
GrzeKrass
ELEKTRONIK - on już ciągnie druty
Dołączył: 22 Paź 2006
Posty: 426
Przeczytał: 0 tematów
Skąd: Żory
|
Wysłany: Śro 22:19, 16 Cze 2010 Temat postu: |
|
|
ja z kukoczem też mamy benek czuwa :/
|
|
Powrót do góry |
|
|
chmurli
ELEKTRONIK - on już ciągnie druty
Dołączył: 16 Paź 2006
Posty: 400
Przeczytał: 0 tematów
Skąd: /dev/null
|
Wysłany: Czw 9:35, 17 Cze 2010 Temat postu: |
|
|
Taborek też czuwa, rok temu mnie tak uwalił :/
|
|
Powrót do góry |
|
|
gemis
Administrator
Dołączył: 08 Paź 2006
Posty: 271
Przeczytał: 0 tematów
Skąd: Knurów / TK
|
Wysłany: Czw 10:09, 17 Cze 2010 Temat postu: |
|
|
@robert_bytom
@zadanie 1
Koncepcje programu miałem identyczną, mój różnił się tylko szczegółami...
Wyrwoł odejmował punkty za:
- nie wrzucenie na stos rejestrów których się używa w przerwaniu ( i pozniej ich zdjęcia na koniec ). za to mi odjął 1 pkt
- no i ogólnie za jakies pierdoły typu ja nie miałem tablicy dokladnie opisanej, napisałem tylko ze tablica jest 2 bajtowa wpisałem pierwszy wiersz i reszte dałem wykropkowane. Zapomniałem przy tym dać kropkę przed db. ( za to odjął mi kolejny punkt ) - łącznie 9 miałem
|
|
Powrót do góry |
|
|
KuKocz
Sado-Elektro - wiecie gdzie ma lutownice
Dołączył: 25 Paź 2006
Posty: 503
Przeczytał: 0 tematów
Skąd: Jastrzębie Zdrój
|
Wysłany: Czw 10:23, 17 Cze 2010 Temat postu: |
|
|
przemo napisał: | Rozwiazanie rodzia wedlug benka na 0pkt |
rodzio napisał: | Bo moje rozwiązanie na egz posiadało błędy. Takie jak CPI na niskich rejestrach i założyłem sobie, że ADC jest wyrównane do prawej.
A w ogóle 0 chyba jest za podzielenie się moją pracą z kolegą. Bo mamy słowo w słowo to samo.
Oczywiście jeśli ktoś dostrzega błąd w tym rozwiązaniu, proszę się podzielić. |
GrzeKrass napisał: | ja z kukoczem też mamy benek czuwa :/ |
Miałem przepisany od krassa kilka pierwszych pętli, ale na szczęście wszystko wyjaśniliśmy wyrwołowi i dał krassowi 7 punktow.
Wiec @przemo jeśli Ty od rodzia ściągałeś powiedz to wyrwołowi to przynajmniej rodzio dostanie jakies punkty za swój program.
|
|
Powrót do góry |
|
|
rodzio
Chuda Jedynka
Dołączył: 11 Sty 2007
Posty: 127
Przeczytał: 0 tematów
|
Wysłany: Czw 10:25, 17 Cze 2010 Temat postu: |
|
|
Nie to nie przemo. A w ogóle za dużo błędów, a interesuje mnie jedynie zwolnienie z teorii, więc sobie jeszcze raz pójdę
|
|
Powrót do góry |
|
|
KuKocz
Sado-Elektro - wiecie gdzie ma lutownice
Dołączył: 25 Paź 2006
Posty: 503
Przeczytał: 0 tematów
Skąd: Jastrzębie Zdrój
|
Wysłany: Czw 10:30, 17 Cze 2010 Temat postu: |
|
|
W takim razie zwracam honor...
Choć z tego co Wyrwoł mówił, wystarczyłoby tylko coś zacząć i już dawał 1 ptk...
Zakładając, że drugie zad masz dobrze to egzam masz do przodu
Co do zwolnień z teorii, jeśli ktoś nie zdaje I terminu do którego podchodzi to z tego co mi wiadomo (mowa tu o zwolnieniach zdobytych w ramach obecności na wykładach) - to takie zwolnienie na kolejnym terminie przepada niestety.
|
|
Powrót do góry |
|
|
robert_bytom
Sado-Elektro - wiecie gdzie ma lutownice
Dołączył: 21 Paź 2006
Posty: 778
Przeczytał: 0 tematów
Skąd: Bytom
|
Wysłany: Czw 11:28, 17 Cze 2010 Temat postu: |
|
|
gemis napisał: | nie wrzucenie na stos rejestrów których się używa w przerwaniu ( i pozniej ich zdjęcia na koniec ). za to mi odjął 1 pkt |
Trochę bez sensu, żeby rozpatrywać to jako błąd, bo wszystko zależy od tego, co jest w programie głównym, a tutaj go w ogóle nie piszemy. Mogę przecież tych rejestrów nigdzie indziej nie używać. Jakbym miał główny program: "jmp $" to po jakiego grzyba miałbym to robić ?
|
|
Powrót do góry |
|
|
gemis
Administrator
Dołączył: 08 Paź 2006
Posty: 271
Przeczytał: 0 tematów
Skąd: Knurów / TK
|
Wysłany: Czw 12:33, 17 Cze 2010 Temat postu: |
|
|
Cytat: | Trochę bez sensu, żeby rozpatrywać to jako błąd, bo wszystko zależy od tego, co jest w programie głównym, a tutaj go w ogóle nie piszemy. Mogę przecież tych rejestrów nigdzie indziej nie używać. Jakbym miał główny program: "jmp $" to po jakiego grzyba miałbym to robić ? |
Yep zgadzam się, by tego wymagać, powinien być w treści zapis typu:
"Proszę zapewnić poprawność działania programu głównego po wyjściu z przerwania".
Ostatnio zmieniony przez gemis dnia Czw 12:34, 17 Cze 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
rodzio
Chuda Jedynka
Dołączył: 11 Sty 2007
Posty: 127
Przeczytał: 0 tematów
|
Wysłany: Czw 18:41, 17 Cze 2010 Temat postu: |
|
|
KuKocz napisał: | W takim razie zwracam honor...
Choć z tego co Wyrwoł mówił, wystarczyłoby tylko coś zacząć i już dawał 1 ptk...
Zakładając, że drugie zad masz dobrze to egzam masz do przodu
Co do zwolnień z teorii, jeśli ktoś nie zdaje I terminu do którego podchodzi to z tego co mi wiadomo (mowa tu o zwolnieniach zdobytych w ramach obecności na wykładach) - to takie zwolnienie na kolejnym terminie przepada niestety. |
Ja liczyłem na takie zwolnienie jak kiedyś dawali ze skimpa od 4.5 Byłem dziś u Wyrwoła policzył mi zadania na 7pkt (oczywiście gdybym przyprowadził Krzysia który potwierdziłby, że spisał) no ale nawet jak Taborek da 11 to dupa, braknie punkta. Powalczymy na kolejnym terminie:)
|
|
Powrót do góry |
|
|
lonerr
Tłuste zero
Dołączył: 18 Maj 2010
Posty: 3
Przeczytał: 0 tematów
|
Wysłany: Sob 17:58, 19 Cze 2010 Temat postu: |
|
|
Kod: | MOV AX,TextSeg
MOV DS,AX
MOV SI,TextOff
NEXT:
LODSB ;zaladowanie do AL bajtu, si++
OR AL,AL ;sprawdzenie czy nie 00h
JE KONIEC ;jesli Z=1 to koniec
CMP AL,0dh ;porownaj do szukanego 0dh
JNE NEXT ;jesli nie znalazl to do poczatku
MOV [SI-1],20h ;jesli znalazl to zamieniamy
INC DX
PRZESUWANIE:
PUSH SI ;odkladamy na stos, bo sie przyda
INC SI ;TUTAJ PRZESUWAMY WSZYSTKO
NX:
LODSB ;ladujemy do AL
MOV [SI-2],AL ;-2 bo zasepujemy znak 0ah
OR AL,AL ;sprawdzanie konca
JNE NX ;jak nie to dalej
POP SI ;jak tak to sciagamy ze stosu
JMP NEXT ;i wracamy
KONIEC: END |
taki pytanko na początku trzeba ustawić chyba flagę kierunku STD?
Ostatnio zmieniony przez lonerr dnia Sob 18:19, 19 Cze 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
rodzio
Chuda Jedynka
Dołączył: 11 Sty 2007
Posty: 127
Przeczytał: 0 tematów
|
Wysłany: Sob 18:24, 19 Cze 2010 Temat postu: |
|
|
Jeśli naszym zadaniem jest napisanie programu jako całości, można by założyć, że ustawione jest domyślnie (czyli SI wzrasta). Natomiast gdy naszym zadaniem jest napisanie jedynie podprogramu, można by to dla pewności ustawić.
|
|
Powrót do góry |
|
|
czeladzian
Tłuste zero
Dołączył: 20 Lut 2008
Posty: 35
Przeczytał: 0 tematów
|
Wysłany: Wto 9:40, 29 Cze 2010 Temat postu: |
|
|
ADC=(1024*Vin)/2,56
Po co to jest dane w zadaniu? Żeby otrzymać wynik musimy wymnożyć to?
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|