Blokhaken
3 berichten
• Pagina 1 van 1
Blokhaken
In het manual van Microchip betreffende de ATmega328 wordt bij de behandeling van de SPI module op pagina 172 een voorbeeld gegeven in assembler en in C om een Master op te zetten.
Daar lees ik de instructie: ldi R17, (1<<DD_MOSI) | (1<<DD_SCK)
Mijn vraag is: wat betekent die uitdrukking? Ja, laadt iets in R17, maar dan?
DD_MOSI mag ik vervangen door het bit in het Data Direction register dat de bewuste pin aangeeft. Maar wat betekenen die blokhaken?
<< staat bij mij voor shift links, maar dat verband kan ik hier niet leggen. Wat mis ik?
Jullie zullen denken, nou een heleboel, begin er maar niet aan. Maar ik wil toch een poging wagen.
Bij voorbaat dank.
Daar lees ik de instructie: ldi R17, (1<<DD_MOSI) | (1<<DD_SCK)
Mijn vraag is: wat betekent die uitdrukking? Ja, laadt iets in R17, maar dan?
DD_MOSI mag ik vervangen door het bit in het Data Direction register dat de bewuste pin aangeeft. Maar wat betekenen die blokhaken?
<< staat bij mij voor shift links, maar dat verband kan ik hier niet leggen. Wat mis ik?
Jullie zullen denken, nou een heleboel, begin er maar niet aan. Maar ik wil toch een poging wagen.
Bij voorbaat dank.
Advertisement
Re: Blokhaken
Weet je wat ik zit te denken, nou een heleboel, begin er maar niet aan
Die notatie is standaard voor AVR microcontrollers.
De definitie van de bits is bijvoorbeeld niet 0x04 maar 2. Het is bit nummer 2.
Dus je neemt een '1' en schuift die een aantal keren naar links totdat je bij het juiste bit bent.
De '|' is een bitwise 'OR'
Er wordt dus twee bits aangezet.
Ik kan het bestand niet vinden waar DD_MOSI en DD_SCK staan, maar het zal dit zijn:
#define DD_MOSI DDB3
#define DD_SCK DDB5
In iom328p.h zit dit:
#define DDB3 3
#define DDB5 5
Die notatie is standaard voor AVR microcontrollers.
De definitie van de bits is bijvoorbeeld niet 0x04 maar 2. Het is bit nummer 2.
Dus je neemt een '1' en schuift die een aantal keren naar links totdat je bij het juiste bit bent.
De '|' is een bitwise 'OR'
Er wordt dus twee bits aangezet.
Ik kan het bestand niet vinden waar DD_MOSI en DD_SCK staan, maar het zal dit zijn:
#define DD_MOSI DDB3
#define DD_SCK DDB5
In iom328p.h zit dit:
#define DDB3 3
#define DDB5 5
Re: Blokhaken
Bedankt Koepel, je hebt mij toch weer wat wijzer gemaakt. Het is dus een bepaalde schrijfwijze.
Ik zat er dus niet ver naast met mijn idee van 'shift links'. Ik begrijp nu, dat ik hier een binair getal moet laden waarvan er twee bits een een zijn. Namelijk het bit dat het CLK signaal en het bit dat het Mosi signaal controleert inderdaad dat zijn DDB3 en DDB5.
Ok, verder maar weer.
Ik zat er dus niet ver naast met mijn idee van 'shift links'. Ik begrijp nu, dat ik hier een binair getal moet laden waarvan er twee bits een een zijn. Namelijk het bit dat het CLK signaal en het bit dat het Mosi signaal controleert inderdaad dat zijn DDB3 en DDB5.
Ok, verder maar weer.
3 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 19 gasten