goto mainloop goto out out in LED0 välja LED0 sisse goto mainloop goto mainloop Seadme juhtprogrammi väljatrükk list p=16f877a ;defineeritakse kontrolleri tüüp include "p16f877a.inc" ;lisatakse kontrolleri infot sisaldav ;*.inc fail org 0x00 ;määrab kindlaks programmi algusvektori bsf STATUS,RP0 ;valitakse mälupank nr 1 (00,10,01,11) bcf STATUS,RP1 ;TRIS register asub pangas1! movlw b'00000000' ;tööregistrisse omistatakse binaararv ;00000000 movwf TRISD ;pordis D määratakse kõik viigud ;väljunditeks movlw 0x06 ;tööregistrisse antakse nr 6
PORTC EQU 0x07 PORTD EQU 0x08 TRISC EQU 0x87 TRISD EQU 0x88 ; Kuna registrid PORTC ja TRISC (vi ka PORTD ja TRISD) paiknevad erinevates mlualades, siis on vajalik mlualasid mberllitada. ; mberllitamine toimub registri STATUS signaalidega 5 ja 6. STATUS EQU 0x03 ; Thistame mlualade llitamiseks signaalid registris STATUS thistega RP0 ja RP1 RP0 EQU 5 RP1 EQU 6 ORG 0x00 ; Transleerimise algusaadress BSF STATUS,RP0 ; Llitatakse sisse mluaken 1 BCF STATUS,RP1 CLRF TRISC ; Kustutatakse register TRISC nulliks - Signaalid RC0, RC1, RC2, Rc3, RC4, RC5, RC6 ja RC7 mratakse vljunditeks CLRF TRISD ; Kustutatakse register TRISD nulliks - Signaalid RD0, RD1, RD2, RD3, RD4, RD5, RD6 ja RD7 mratakse vljunditeks
Programm kuvab AD-muundur väärtust seitsmesegmendilise indikaatoriga. Plokkskeem: Joonis 1: AD-muunduri plokkskeem Juhtprogrammi väljatrükk: ;Mikrokontrolleri registrinimede lisamine list p=16f877a include "p16f877a.inc" ;Muutujate defineerimine cblock 0x20 Pause Pause_tmp temp_var endc ;Programm alates aadressist 0 org 0x00 bsf STATUS,RP0 ;Valime mäluala 1 bcf STATUS,RP1 movlw b'00000000' ;Kogu portD on väljund movwf TRISD movlw b'00000000' ;Kogu portC on väljund movwf TRISC movlw .0 movwf ADCON1 ;PORTA seadistatakse analoogsisenditeks
Me näeme, et Arduino pin 13 on PB5 on ATmega168 - osa port B. Et
kasutada seda pin, port B kõigepealt tuleb olla väljund pin. On mitmeid viise, kuidas seda teha, [2] -
kirjalikult Port B Andmete suund loomist, [3] aadressil 0x24 või laisk / parem, kasutades DDRB
makro. Hoiame asjad lihtsad ja seada kogu port väljund DDRB = 0xFF; . Lõpuks saame alustada kirjali
PORTB (aadress 0x25).
Lihtne lahendus oleks oleks teha midagi sellist:
while (1) {
PORTB = 0xFF;
_delay_ms (500)
PORTB = 0x00;
_delay_ms (500);
}
mis kasutab viivitus rutiin määratletud
1. Testi kõvaketta pind füüsiliselt läbi firmapärase utiliidiga. Näiteks pakub Ultimate Boot CD erinevate kõvakettatootjate testimistarkvara. 2. Kas kõvaketta Master Boot Record on korrektse sisuga? Vaatle partitsioonitabe- lit (näiteks Ultimate Boot CD pealt MBRTool). Partitsioon, kust peab saama op- süsteemi laadida, peab olema buutimislipuga (kirje esimeses baidis 0x80) ja tei- sed mitte (0x00) Partitsioonide failisüsteemi tüübid (kirje viies bait) peavad ole- ma õiged (0x00=Empty, 0x05=DOS, 0x07=WinNT NTFS, 0x0B kuni 0x0f=Win95, 0x82=Linux swap, 0x83=Linux native, 0xA5=BSD native). 59 3. Vaata partitsioonide tüübid ja suurused ka fdisk-iga üle. DOSi käsureal toimub see kä- suga FDISK UNIXi käsureal on tarvis märkida ära seadmefail, näiteks fdisk /dev/hda 4. Kontrolli üle failisüsteem