Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Czy w tym programie działa NOP

Ania30
-
-
Posty: 120
Rejestracja: 31 lip 2018, o 07:57

Czy w tym programie działa NOP

Postautor: Ania30 » 4 sty 2021, o 23:36

Witam
Czy w tym programie działa NOP , i w jaki sposób działa?
Program się kompiluje i wgrany do uC działa ,jest zmiana polaryzacji co 64 sekund.
Pozdrawiam
Ania

Kod: Zaznacz cały

#include <avr/io.h> //Attiny 2313a ,LOW 7F , 64/64 sekund #include <util/delay.h> // kwarc 16 MHz #define nop() main() { DDRB = (1<<PB3)|(1<<PB4); PORTB|=(1<<PB3); while(1) { PORTB ^= (1<<PB3)|(1<<PB4); _delay_us(128000000); nop (); } }
Daję tak jak poniżej , bo znacznik działa tak jak powyżej.

#include <avr/io.h> //Attiny 2313a ,LOW 7F , 64/64 sekund
#include <util/delay.h> // kwarc 16 MHz
#define nop()
main()
{
DDRB = (1<<PB3)|(1<<PB4);
PORTB|=(1<<PB3);
while(1)
{
PORTB ^= (1<<PB3)|(1<<PB4);
_delay_us(128000000);
nop ();
}
}

Ania30
-
-
Posty: 120
Rejestracja: 31 lip 2018, o 07:57

Re: Czy w tym programie działa NOP

Postautor: Ania30 » 5 sty 2021, o 15:23

Nie w takim programie jak powyżej nie działa NOP
W tym programie poniżej działa NOP :

#include <avr/io.h> //Attiny 2313a ,LOW 7F , 64/64 sekund
#include <util/delay.h> // kwarc 16 MHz
#include <avr/cpufunc.h>
main()
{
DDRB = (1<<PB3)|(1<<PB4);
PORTB|=(1<<PB3);
while(1)
{
PORTB ^= (1<<PB3)|(1<<PB4);
_delay_us(128000000);
_NOP();
}
A niżej disassembler powyższego programu wgrany do uC działa.

.NOLIST.
.INCLUDE "TN2313ADEF.INC"
;.INCLUDE "M328PDEF.INC"
.LIST
.CSEG
.EGU FOSC =16 ; CZĘSTOTLIWOŚĆ KWARCU W MHz
.ORG 0x0000
RJMP RESETPROCESOR
RESETPROCESOR:
CLR R1
OUT 0x3F,R1
LDI R28,0xDF
OUT 0x3D,R28
RCALL PC+0x0003
RJMP PC+0x0017
RJMP PC-0x001B
LDI R24,0x18
OUT 0x17,R24
SBI 0x18,3
LDI R25,0x18
IN R24,0x18
EOR R24,R25
OUT 0x18,R24
LDI R18,0x54
LDI R19,0x85
LDI R20,0x45
LDI R21,0x01
SUBI R18,0x01
SBCI R19,0x00
SBCI R20,0x00
SBCI R21,0x00
BRNE PC-0x04
RJMP PC+0x0001
RJMP PC+0x0001
NOP ; No operation
RJMP PC-0x0010
CLI
RJMP PC-0x0000

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości