Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR Atmega8
Hallo
Ich nochmal.
Ich habe heut nun den ganzen Tag am myAVR-Board verbracht - sowie auch im Internet.
VIelleicht habe ich mich einfach nur ein wenig blöd angestellt.
Folgende Zusammenfassung:
Ich schreibe Programme als normales asm-File, Compilire mit gavrasm und brenne mit avrdude. Irgendwas passt mir daran nicht - ständig unheimlich lange Kommandozeilen etc. Gibt es denn keine "saubere" Möglichkeit?
Über ein paar Tipps und Hinweise würde ich mich freuen - was auch noch interessant wäre, wären Programm Beispiele.
Gruß
Und dann stehe ich schon vor dem nächsten Problem.
Das folgende Programm funktioniert im AVR-Studio 1A und am Board überhaupt nicht.
Funktion:
LED EIN
WARTEN AUF TASTER IM LOOP
TASTER GERDRÜCKT, 2te LED AN
start:
ldi r16,low(ramend) ;Stackpointer auf
out spl,r16 ;RAM-Ende setzen
ldi r16,0b00000011 ;PortB: PB0 auf Ausgang
out ddrb,r16 ;setzen
ldi r16,0b00000001 ;PortB: PB0 auf Ausgang
out portb,r16
loop:
in r16,pinb ;PINb einlesen
cpi r16,5 ;
breq exit
rjmp loop
exit:
ldi r16,0b0000011
out portb,r16
Irgendwas passt mir daran nicht - ständig unheimlich lange Kommandozeilen etc. Gibt es denn keine "saubere" Möglichkeit?
es gibt ne grafische oberfläche für avrdude:
http://sourceforge.net/projects/avrdude-gui
Hallo Thopos,
>cpi r16,5
du vergleichst mit 5, binär 00000101?
Schaltet der Taster denn 5Volt an den Eingang PinB.2?
PinB.0 sollte ja schon 1 liefern.
Gruß, Michael
Genau, die erste LED ist ja schon An, somit liefert pinb.0 schon 1.
Prinzipiell habe ich meinen Fehler gefunden, PullUp ;-)
Aber so wirklich verstehen, tue ich das noch nicht...
Hi , habe auch ein Problem mit der Tasterabfrage bei einem STK500 Board,
habe folgendes Program geschrieben, naja den Teil mit der Tasterabfrage hae ich aus dem Datenblatt vom Atmeg8, komischerweise reagiert die LED auf die Taster 4und 5 und ich hab keine Ahnung warum , vielleicht hat jemand von euch eine Erklärung dafür.
int main(void)
{
while(1)
{
DDRD |= 0xff;
PORTD |= 0xff;
unsigned char a;
/* Define pull-ups and set outputs high */
/* Define directions for port pins */
PORTB |= (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0);
DDRB |= (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
/* Read port pins */
a = PINB;
if(a ==243) // bei a==243 LED an Taster4/5 geht aus
{
PORTD &= ~(1<<PD0) ;
}
}
}
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.