soweit ich sehen kann, hast du die variable flag auch nicht definiert, zumindest hast du uns den teil vom code nicht mitgeschickt
um sowohl von der interrupt routine in asuro.c als auch von deinem hauptprogramm auf die variable flag zugreiffen zu können, musst du eine globale variable im asuro.c machen; diese musst du außerdem als 'volatile' deklarieren, da du auf diese sonst keinen zugriff hast
das heißt du schreibst im asuro.h
Code:
unsigned volatile long flag = 0;
und kannst dann auf sie zugreiffen
btw, das ist nicht der sinn eines flags
ein flag zeigt eine zustandsänderung an, das heißt du zählst in der interrupt-routine bis 72k und setzt dann das flag auf 1 (dann reicht auch ein char/integer) und fragst im hauptprogramm nur ab, ob das flag auf 1 oder 0 ist
sobald das flag auf 1 ist, reagierst du darauf und setzt es wieder auf 0 zurück, damit du die nächste zustandsänderung wieder erfassen kannst
mehr zu flags hier: http://de.wikipedia.org/wiki/Flag_(Informatik)
EDIT: ok, hab übersehen, dass du das flag definiert hast
du musst es auch in der asuro.h angeben, sonst findet das hauptprogramm die variable nicht.
dein nächstes problem sein, dass ein integer den wertebereich von -32k bis +32k annehmen kann und du somit nie auf einen wert von 72k kommen wirst - verwende einen long
Lesezeichen