Pytanko numer 1:
Jaki kompilator pod windows jest najlepszy , czyli jakiego wy używacie. Bo ja mam w szkole Reads51 i nie wiem dlaczego jak sie napisze program wykorzystujący przerwania (u mnie zegarowe) to w debuggerze wszystko jest okej , jednak po wgraniu na płytke to juz przerwania sie nie uruchamiają.
Pytanko numer 2:
A może ktoś mógłby podesłać taki najprostszy w świecie programik z Timerami na przerwaniach abym mógl sprawdzić czy to zadzaiła , bo może to ja zły program napisałem. (ten mój program to zegarek z użyciem wyswietlacza 7-segmentowego).
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ęKompilator Asemblera Pod Windows
Moderatorzy:Jacek Bogusz, procesorowiec, robertw, tomasz_jablonski, r-mik, Moderatorzy
Odp do pyt 1:
Domyślam się (bo nie określiłeś) ze chodzi o 8051. Ja używam Raisonance http://www.raisonance.com/ lub MIDE http://www.opcube.com wraz z ASEM51 http://plit.de/asem-51/home.htm
Odp do pyt 2:
A moze Ty zamieścisz swój programik i zobaczymy co w nim jest nie tak?
Domyślam się (bo nie określiłeś) ze chodzi o 8051. Ja używam Raisonance http://www.raisonance.com/ lub MIDE http://www.opcube.com wraz z ASEM51 http://plit.de/asem-51/home.htm
Odp do pyt 2:
A moze Ty zamieścisz swój programik i zobaczymy co w nim jest nie tak?
Poniżej jest kod mojego programu :
[ Dodano: 14-12-2004, 11:25 ]
Dodam jeszcze ,że ten program to zegarek , gdzie wynik jest wyswietlany na wyświetlaczu 7-segmentowym . Wartość wysyłana na port P1 bity 0-3 to wartość do wyswietlenia bity 5-7 wysterowanie wyświetacza
[ Dodano: 16-12-2004, 13:50 ]
Jeszcze jedno . Ten program wyżej (zegarek) działa co zostało przetestowane w symulatorach (chyba z trzech). Dopiero po załadowaniu do mikrokontrolera , przestaja się uaktywniać przerwania. Co jest nie tak , nikt nie ma pojęcia , ale to raczej wina sprzętu niz programu i tak jest w całej pracowni , a może i wina programu juz sam nie wiem . Jakby ktos mógł to niech załaduje ten program na mikrokontroler i sprawdzi czy to działa na sprzecie. (piny portu P1.0-P1.3 do wyświetlacza piny P1.4-P1.7 sterują który wyświetlacz wyświetla cyfrę) A pewnie trzeba będzie odhaczyć tego includa na górze i dodać zera tam gdzie jest Add A,#b0h -> Add A,#0b0h (ale to w zaleśności od kompilatora). Koniec juz więcej nie piszę na ten temat jakby ktos miał na tyle chęci aby to sprawdzić to bede wdzieczny.
Kod: Zaznacz cały
#include <sfr51.inc>
;timer 0
T0_G equ 0 ;Gate
T0_C equ 0 ;Counter/Timer
T0_M equ 1 ;mode (0..3) Mode1 to od zera do 65536*12/11.0592= 71 ms
Tim0 equ T0_M + T0_C*4 + T0_G*8
;timer 1
T1_G equ 0 ;Gate
T1_C equ 0 ;Counter/Timer
T1_M equ 0 ;mode (0..3) Zero bo tego timera ne uzywamy
Tim1 equ T1_M + T1_C*4 + T1_G*8
TMod_Set equ Tim0 + Tim1*16
; 50[ms] = 50 000 [mikros] *(11.0592[MHz]/12)=46 080 cykli = 180 *256
Tl0_Set equ 0
Th0_Set equ 256-45
ajmp Start
;--------------------- Procedura odslugi przewania ----------------
org 0Bh
mov Th0,#Th0_Set
cjne r4,#0,NiePierwsze
clr A
add A,#e0h
add A,r0
mov P1,A
inc r4
ajmp JednaZapalona
NiePierwsze:
cjne r4,#1,NieDrugie
clr A
add A,#d0h
add A,r1
mov P1,A
inc r4
ajmp JednaZapalona
NieDrugie:
cjne r4,#2,NieTrzecie
clr A
add A,#b0h
add A,r2
mov P1,A
inc r4
ajmp JednaZapalona
NieTrzecie:
clr A
add A,#70h
add A,r3
mov P1,A
mov r4,#00h
djnz r6,No_1Sek
mov r6,#20
inc r0
JednaZapalona:
No_1Sek:
reti
;------------ Koniec Procedury Obslugi Przerwania -----------
org 100h
Start:
mov r0,#00h
mov r1,#00h
mov r2,#00h
mov r3,#00h
mov r4,#00h
mov TMod,#TMod_Set
mov Tl0,#Tl0_Set
mov Th0,#Th0_Set
setb Tr0
mov r6,#20 ; 20 razy na sekunde
setb EA ; wlacz zezwolenie ogolne na przerwania
setb ET0 ; wlacz zezwolenie na przerwanie od Timera 0
ajmp NieMinelo10s
Minelo10s:
inc r1
mov r0,#00h
cjne r1,#06h,NieMinelo60s
inc r2 ; minelo 60s
mov r1,#00h
cjne r2,#0ah,NieMinelo10m
inc r3 ; minelo 10 minut
mov r2,#00h
NieMinelo60s:
NieMinelo10m:
NieMinelo10s:
cjne r0,#10,NieMinelo10s
ajmp Minelo10s
end
[ Dodano: 14-12-2004, 11:25 ]
Dodam jeszcze ,że ten program to zegarek , gdzie wynik jest wyswietlany na wyświetlaczu 7-segmentowym . Wartość wysyłana na port P1 bity 0-3 to wartość do wyswietlenia bity 5-7 wysterowanie wyświetacza
[ Dodano: 16-12-2004, 13:50 ]
Jeszcze jedno . Ten program wyżej (zegarek) działa co zostało przetestowane w symulatorach (chyba z trzech). Dopiero po załadowaniu do mikrokontrolera , przestaja się uaktywniać przerwania. Co jest nie tak , nikt nie ma pojęcia , ale to raczej wina sprzętu niz programu i tak jest w całej pracowni , a może i wina programu juz sam nie wiem . Jakby ktos mógł to niech załaduje ten program na mikrokontroler i sprawdzi czy to działa na sprzecie. (piny portu P1.0-P1.3 do wyświetlacza piny P1.4-P1.7 sterują który wyświetlacz wyświetla cyfrę) A pewnie trzeba będzie odhaczyć tego includa na górze i dodać zera tam gdzie jest Add A,#b0h -> Add A,#0b0h (ale to w zaleśności od kompilatora). Koniec juz więcej nie piszę na ten temat jakby ktos miał na tyle chęci aby to sprawdzić to bede wdzieczny.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości