sander Aleksandar Golovic Beograd
Član broj: 21336 Poruke: 211 *.adsl-3.sezampro.yu.
|
Pa sama ti poruka kaze da PORTB njemu nista ne znaci, da bi koristio PORTB na nacin na koji ti hoces trebalo bi da napises:
#BYTE PORTB = 6
sto ce reci da kada citas ili upisujes nesto u promenljivu PORTB ti ustvari pristupas RAM-u na adresi 6 a pogadjas da se tamo nalazi registar PORTB.
Takodje mozes da koristis za istu stvar funkciju output_B(vrednost);
dok za promenu TRISB registra set_tris_B(vrednost);
ili sledeci primer sa PORTB isto mozes da uradis i sa TRISB registrom:
#BYTE TRISB = 0x86
gde je 0x86 adresa TRISB registra.
Slicno ovome ako hoces da pristupas nekom bit-u pises:
#BIT T0IF = 0xb.2 (T0IF bit je bit 2 na adresi 0xb odnosno adresa registra INTCON)
Tako da tvoj program treba da glasi:
#include <16F877A.h>
#use delay (clock=4000000)
#fuses XT,NOWDT,NOLVP,PUT
#include <stdlib.h>
#byte PORTB = 0x06
#byte TRIS = 0x86
void main() {
PORTB=0b11111010;
TRISB=0b11111010;
While(1){
PORTB=~PORTB;
Delay_ms(20);
}
}
ili
#include <16F877A.h>
#use delay (clock=4000000)
#fuses XT,NOWDT,NOLVP,PUT
#include <stdlib.h>
#use fast_io(B)
void main() {
output_b(0b11111010);
set_tris_b(0b11111010);
While(1){
output_b(~input_b());
Delay_ms(20);
}
}
[Ovu poruku je menjao sander dana 24.11.2007. u 02:04 GMT+1]
|