G_SHOCK
tja...
ik ben gisteren begonnen in C.
Nu heb ik al een werkende code etc. maar dit is allemaal in asm.
nu dacht ik het is te maken in C kan ik dat ook meteen leren.
mijn probleem is nu:
hoe kan ik zien of een ingang laag is en daarna een stukje code uit laten voeren.
dit is nodig voor een signaal dat X us hoog is en 500us laag is, als het laag is kan ik dus het signaal oproepen dat ik nodig heb.
nu had ik het volgende stukje:
while(!INPUT(DRDY))
{}
nu krijg ik te zien omgezet naar asm. dat hij ook de heletijd naar bank1 loopt te schrijven??(onzin).
even uit me hoofd een soort gelijke asm code:
begin
bsf 03,5 ;naar bank 1
bsf 05,3 ;( poort an2)
bcf 03,5 ;naar bank 0
btfsc 05,3; 1 0f 0 ..
goto begin
alleen nu werkt dit dus niet,en waarom zoveel moeite?
ik heb me TRIS registers zelf allemaal al ingesteld.
Dus weet iemand hoe het wel moet in C, en ook toevallig hoe je dat omslachtige code werk kan veranderen?
Marcel
AVR C tutorial http://expand.xs4all.nl/avr
Wellicht handig om wat meer informatie te geven. Welke compiler en platform hebben we het hier over? Gezien je het over banks hebt en het TRIS register denk ik PIC.
Voor AVR in AVRGCC zou ik het zo schrijven:
while(PINB & (1 << PB0)); //wachten zolang PB0 hoog is
.. code om uit te voeren als PB0 laag is
Ik weet niet wat INPUT bij jou voor functie of macro is, maar ik heb wel een vermoeden. Doet je loop dan niet juist het omgekeerde, hij loopt zolang er geen input is en stop zodra er input is. Je wilt toch juist andersom?
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Google scant blijkbaar geen nieuwsgroepen of forums af naar broncode. Zoiets zou heel wat meer resultaten opleveren; 't is enkel de vraag of dat wel gewenst is...