Lite AVR Asm hjälp.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Jonaz
Inlägg: 2326
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Lite AVR Asm hjälp.

Inlägg av Jonaz »

Det går lite trögt nu..

Jag vill att pinne Pd1 är hög om pb1 är hög, men jag får inte till det bara

Skulle det inte kunna vara nått enkelt som
IF PortD.1 = 1 Then Portb.1 = 1
Else goto loop


Förslag?
G4jm0r
Inlägg: 825
Blev medlem: 1 februari 2004, 20:03:43
Ort: Malmö

Inlägg av G4jm0r »

Den kodsnutten du skrev är inte ASM utan snarare en blandning av C och Basic.
Kolla i microprocessorns datablad, där finns ganska användbar info.
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Vad vill du göra ? över sätta koden snutten till asambler?

Eller funkar inte din kode i basic?

ps
PINx används för att läsa in från portx
PORTx används för att skriva till portx
DDRx använd för att sätta rikning på portx
ds
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

pseudokod:

Kod: Markera allt

if portd1 == 1then
out portb, 1
endif

goto loop
assemblerkod

Kod: Markera allt

sbic PIND, 1
sbi PORTB, 1
rjmp loop
;sbic = Skip if Bit in IO register is Cleared
;sbi = Set Bit in IO register
Användarvisningsbild
Jonaz
Inlägg: 2326
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

Det är i BASCOM ,Basic?

Kod: Markera allt

  Dim A As Byte
Config Portb = Output
Config Portd = Input

Hit:
 Do
    If Portd.1 = 1 Then Goto Dit Else Goto Hit
Dit:
 Set Portb. 1

Loop

End
Tycker att det borde funka.
Vad är det för knas tro?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

går det att sätta en hel port som in- och utgång på det sättet i Bascom?
G4jm0r
Inlägg: 825
Blev medlem: 1 februari 2004, 20:03:43
Ort: Malmö

Inlägg av G4jm0r »

Bascom är precis som fastAVR en basic compilator till avr processorer.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Jonaz skrev:Det är i BASCOM ,Basic?

Kod: Markera allt

  Dim A As Byte
Config Portb = Output
Config Portd = Input

Hit:
 Do
    If Portd.1 = 1 Then Goto Dit Else Goto Hit
Dit:
 Set Portb. 1

Loop

End
Tycker att det borde funka.
Vad är det för knas tro?
Ska det inte vara If PinD.1 = 1 ?

Och snälla använd inte Goto:s. Det är mycket, mycket sällan man verkligen behöver använda det och det anses som väldigt fult att använda sig av det. Tyvärr ser man ofta att Goto:s används i Basic-kod, medan man aldrig ser det i t ex C-kod. Fråga mig inte varför.

Är det inte så här du vill ha det, med reservation för eventuella syntaxfel?

Kod: Markera allt

Dim A As Byte
Config Portb = Output
Config Portd = Input

Do
    If Pind.1 = 1 Then Set Portb.1
Loop

End
Skriv svar