Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

Segítség, béna vagyok!

Indította gaben, 2024 április 09, 15:35

Előző téma - Következő téma

9hpa53xy


s7manbs8

Ott az include-ok közt van sbit.h ?

9hpa53xy

nincs. nincs olyanom hogy sbit.h :)

9hpa53xy

de ha kiszedem azt a sort ahol értéket akarok adni az sbit-el definiált kimenetnek, akkor lefordul rendesen.

s7manbs8

ez definiálja azt az SBIT( ... cuccot:
 
#include <avr\io.h>
 
//          Access bits like variables:
struct bits {
  uint8_t b0:1;
  uint8_t b1:1;
  uint8_t b2:1;
  uint8_t b3:1;
  uint8_t b4:1;
  uint8_t b5:1;
  uint8_t b6:1;
  uint8_t b7:1;
} __attribute__((__packed__));
 
#define SBIT_(port,pin) ((*(volatile struct bits*)&port).b##pin)
#define   SBIT(x,y)   SBIT_(x,y)
 
 

s7manbs8

Ezt másold a programod elejére pl. vagy itt a file linkje:
 
http://www.mikrocontroller.net/attachment/60772/sbit.h" TARGET=_fnew>sbit.h

9hpa53xy


s7manbs8

Vagy ilyenekkel is lehet bitet manipulálni pl.:
 
#define SETBIT(x,y) (x|=(1<<y)) //set bit y in byte x
#define CLRBIT(x,y) (x&=(~(1<<y))) //clear bit y in byte x

s7manbs8

Na, végre valami összejött nekem is ma akkor. :)

9hpa53xy

Hála tényleg érte. Ez a C nyelv nekem egy nagy katyvasz. Pedig megítélésem szerint egész jó Pascalos vagyok.... :)

s7manbs8

Majd tisztulni fog az, érdemes szerintem, mert rengeteg kód van amiből lehet tanulni, meg használni is.

9hpa53xy

Kényszerből csinálom egyébként, mert a "mikropascal" fejlesztőkörnyezetben több a bug mint a használható elem. A C meg az Atmel "sajátja" a kezdetek kezdetétől...

s7manbs8

Én ezt C-ben kezdtem, amellett már nem kellett pascalozni.

9hpa53xy

Úgy más persze, csak én a Pascalt 12 évesen kezdtem el, és annak már 15 éve ;) Idővel persze ha haladok vele átállok teljesen. Sajna a jó öreg Pascalnak nem nagyon van jövője.

9hpa53xy

Egyébként hiába definiálok ki/bemeneti lábat SBIT-el....a fordító lefordítja ugyan, csak a hardware nem csinál semmit vele. :/