Vienkāršā C codevision jautājumu, PLZ palīdzēt

  • Thread starter Terminator Elektr
  • Start date
T

Terminator Elektr

Guest
Sveiki

Kāda šīs līnijas nozīmē?

Kāda šādu izteiksmi nozīmē?

ja (Array un a),, bet masīvs ir mainīgs heksadecimālo vērtību, un "" ir konstante heksadecimālo vērtību

un ko tas nozīmē?
<<= 1;

Paldies,,

 
Paldies par ur palīdzēt, viss tagad ir skaidrs,,,,

starp citu,,, do u ir ideja, kā uzrakstīt pārtraukt virza IR RC% kodu?cuz es viens tikai ar taimeri un tā strādāja perfekti,, bet man nav ideju, kā sākt rakstīt kodu, izmantojot pārtraukt

 
Terminator Elektrība rakstīja:

do u ir ideja, kā uzrakstīt pārtraukt virza IR RC% kodu?
cuz es viens tikai ar taimeri un tā strādāja perfekti,, bet man nav ideju, kā sākt rakstīt kodu, izmantojot pārtraukt
 
Ko u saprotam ar ISR?

Šis ir mans kods IR RC5 saņēmēju, izmantojot ATmega16

Kods:

/************************************************* ****
Chip type: ATmega16L

Programmas veids: Pieteikums

Takts frekvenci: 7.372800 MHz

Atmiņas modelis: Mazā

Ārējo SRAM lielums: 0

Datu skursteni izmērs: 256

************************************************** *** /par spēkā neesošu setup_AVR ();

# Define CHECKBIT (adrese, BIT) (ADDRESS & (1 <<BIT))

# Ietvert <mega16.h>

# Ietvert <stdio.h>

# Ietvert <io.h>

neparakstīts char temperatūra = 0;

neparakstīts char komanda [10] = (0);

neparakstīts char sistēma [10] = (0);

neparakstīts char timerH = 0;

neparakstīts char timerL = 0;

int bitcnt; / / bitu skaitu gaida saņemts

neparakstīts char ref1; / / 04/03 bit_time

neparakstīts char ref2; / / 04/05 bit_time

int i = 6;

int j = 5;

int k;pārtraukt [TIM0_OVF] par spēkā neesošu timer0_ovf_isr (spēkā neesošs)

(

timerL ; / / soli ik pēc 255 * 1/7.372800 sekundes

temperatūra ;

ja (temp == 255) (temperatūra = 0; timerH ;) / / soli katru 255 * 255 * 1/7.372800 sekundes

)par spēkā neesošu galvenais (spēkā neesošs)

(

setup_AVR ();
# ASM ("SEI")kamēr (1)

(inicializēt: temperatūra = 0;

timerH = 0;detect1: timerL = 0;detect2: ja (timerH> 15) / / Ja sākumā mazliet GSE 132ms

Iet vainas;ja (timerL> 102) / / Ja līnija augstas 3.5ms vairāk nekā

Goto start1; / /, tad jāgaida starts bitif (! CHECKBIT (PIND, 2)) / / Ja līnija ir:

Goto detect1; / / PIND = 0 zema - lēkt uz detect1 un atiestatītu taimeri

cits Goto detect2; / / PIND = 1 liels - pāriet uz detect2 un vēlreiz pārbaudiet, lai 3,5 ms par ideālu augstasstart1: lai gan (CHECKBIT (PIND, 2)) / / saglabā pārbaudei pirmo sākums bit

(

ja (timerH> 15) / / Ja sākumā mazliet GSE 132ms

Goto vainas; / /, tad izvešanas printf ("5");

)timerL = 0; / / Pasākums halflength sākuma bitstart2: lai gan (! CHECKBIT (PIND, 2)) / / Pasākums halflength starta bits (zems līmenis garums)

(

ja (timerL> 26) / / Ja 1.1ms startbit ilgāku

Goto vainas; / / izceļošanas

)

/ / TimerL = 1 / 2 biti laiks

ref1 = 3,0 * timerL/2.0; / / ref1 = 04/03 bitu laiks

ref2 = 5,0 * ref1/3.0; / / ref2 = 04/05 bitu laiks

timerL = 0;start3: lai gan (CHECKBIT (PIND, 2)) / / pārbauda, vai otrais sākas nedaudz ir saņemts

(

ja (timerL> ref1) / / Ja pieaug mala ir pārāk garš

Goto vainas; / / izceļošanas

)bitcnt = 12; / / saņemt 12 biti

j = 5; / / For komandu

i = 5; / / Par sistēmu

paraugs: timerL = 0;

kamēr (timerL ref1 <); / / pagaidīt līdz pirmā 1 / 4 no nākamā bitkamēr (bitcnt> 0)(

/ / Tagad saņem pirmo 7 biti, ieskaitot Toggle bit

kamēr (bitcnt> 6)

(If (PIND.2 == 0) (/ / bits saņemto 0

sistēma = 0; / / veikals bitu sistēmā

i -, bitcnt -; / / sagatavotos nākamajai bit

bet (! CHECKBIT (PIND, 2)) / / gaidīt līdz nākamajai malu

(

ja (timerL> ref2) Iet vaina;

)

Goto paraugs; / / gaidīt nākamo bit

)else (/ / bits saņemto 1

sistēma = 1; / / veikals bitu sistēmā

i -, bitcnt -; / / sagatavotos nākamajai bit

kamēr (CHECKBIT (PIND, 2)) / / gaidīt līdz nākamajai malu

(

ja (timerL> ref2) Iet vaina;

)

Goto paraugs; / / gaidīt nākamo bit

)

)

/ / Tagad saņem pēdējo 6 bitiemja (PIND.2 == 0) (/ / bits saņemto 0

komanda [j] = 0; / / veikals bitu komandu

j -, bitcnt -; / / sagatavotos nākamajai bit

bet (! CHECKBIT (PIND, 2)) / / gaidīt līdz nākamajai malu

(

ja (timerL> ref2) Iet vaina;

)

Goto paraugs; / / gaidīt nākamo bit

)else (/ / bits saņemto 1

komanda [j] = 1; / / veikals bitu komandu

j -, bitcnt -; / / sagatavotos nākamajai bit

kamēr (CHECKBIT (PIND, 2)) / / gaidīt līdz nākamajai malu

(

ja (timerL> ref2) Iet vaina;

)

Goto paraugs; / / gaidīt nākamo bit

)

)

printf ("aa");

par (k = 5, k> = 0, k -)

printf ("% d", komanda [k]);

printf ("BB");

par (k = 5, k> = 0, k -)

printf ("% d", sistēma [k]);vaina: Goto inicializ;);

)

par spēkā neesošu setup_AVR ()

(

PORTD = 0x00;

DDRD = 0x00;

TCCR0 = 0x01;

TCNT0 = 0x00;

OCR0 = 0x00;

TIMSK = 0x01;

ACSR = 0x80;

SFIOR = 0x00;

)
 

Welcome to EDABoard.com

Sponsor

Back
Top