Coup de chance Lol .d'ailleurs c'est bien B.0
hi2cout 0,(b0,b1,b2,b3,b4,b5) ' Envoi des données au 28X2 esclave
Ca je l'avais fait, par contre puis je mettre "i2cfast_32" car les deux picaxes travaillent à fond les gamelles à 32Mhzsur une liaison I2C avec un picaxe esclave, il faut que l'adresse de l'esclave soit définie
Dans ton exemple tu n'utilise pas b0 y'as til une raison (car moi je l'utilise)? si oui serait ce par ce que l'i2c utilise le bit0 comme flag d'interruption ? dans ce cas puis je tout de même utilise les bit1 à 7 ?hi2cout 0, (b1,b2,b3,b4,...b8) va placer le contenu des variables b1 à b8 dans le scrachpad de l'esclave à partir de la mémoire 0.
non! les mettre alors en entrée, cad en haute impédance.Est il plus mieux bien, de definir toutes les broches non utilisés comme des sorties ,afin d'eviter des bugs ?
Non. lire le scratchpad se fait par un get qui affecte directement la valeur à une variable. Il n'y a rien à gagner en temps.Pour l'esclave , peut il utiliser les valeurs du scratchpad à la volée ? C'est à dire sans les stocker dans une variable afin de gagner du temps
La fréquence du récepteur n'a rien à voir puisque c'est le maître qui donne l'horloge de la transmission (slc)puis je mettre "i2cfast_32" car les deux picaxes travaillent à fond les gamelles à 32Mhz
Quand tu coupes l'alimentation.les données s'effacent elles au bout d'un moment ?
Non aucune. Et le flag d'interruption n'a rien à voir et n'est pas contenu dans le scracpad.Dans ton exemple tu n'utilise pas b0 y'as til une raison
Oui.quand on envoie du maitre à l'esclave "hi2cout 0, (b1,b2,b3,b4,...b8)" . la valeur de la variable b1 se trouve bien en 0( registre scratchpad) ?
Oui t'as tout compris.j'ecris bien get 0,(b9) ?
Non le test sur chaque variable de prendrait plus de temps que de réécrire l'état de chaque variable. Si c'est éteint et que tu rééteint et bien ça ne prends pas plus de temps que si c'était allumé.une derniére pour la route, dans un soucis d'optimisation du programme, y'a t il une fonction de test sur un changement d'etat
Oui !Je me premds peut etre la tête pour rien
'##### Commande direction #####
Select case b2
case < 120
b2 = b2/10*6
b2 = 225-b2
case > 130
b2 = b2/10*6
b2 =228-b2
else
b2=150
end select
servopos 1,b2
Oui la petite erreur dont je parle c'est ce fameux 78 au lieu de 75 . mais si ça me simplifie autant le calcul je ferais avec , car ca doit pas trop etre perceptible ;parce que là tu as 225 -78 de variation !
'##### Commande direction #####
if 120<b2<130 then
b2 = 150
else
b2 = b2/10*6
b2 = 225-b2 min 75
end if
servopos 1,b2
'##### Commande direction #####
'cde inversée '
'b2 = 255 servo 75
'b2 = 0 servo 225
Select case b2
case < 120
b2 = b2*5/8
b2 = 225 - b2
case > 134
b2 = b2-134*5/8
b2 = 150 - b2
else
b2=150
end select
servopos 1,b2
inputtype %0000000100000000 'met la broche C.0 en mode TDS sur un 14m2
C'est certain, ton principe de calcul n'est pas bon! les formules sont à déterminer par calcul, pas par estimation pifométrique.Coté servo Direction Ton code PieM fonctionne très bien et le mien aussi , j'ai quelques test a faire car je crois que le mien saccade un peu par rapport à celui de PieM et je vois pas trop pourquoi
If bit2 = 1 then
do
setfreq m4
pwmout pwmdiv16, B.5, 143, 287
pause 545
pwmout pwmdiv16, B.5, 127, 256
pause 545
loop
else
pwmout B.5, off
setfreq m8
end if
Pourquoi pas un 08M2 dédié ?Ta sirène provoque une pause permanente !
Merci de ne pas faire de "réglage" sur la formule, mais de donner les bonnes infos de mini maxi ! Je te recalculerai les bonnes formules.J'ai des réglages a faire sur ta formule, car 75 - 225 le servo va trop loin , il faut que je détermine les bon débattements !
J'ai cru comprendre que tu avais des trucs qui clignotaient aussi ?Mais , cela est déjà mon troisième typon, alors tout rechangé pour dédié une sirène non merci
Par soucis d'honnêteté, je vais d'abord faire ma formule , Déjà que ça m'énerve de ne pas saisir le truc de la mise a l'échelle . je comprends tout mais j'arrive pas à le mettre en œuvre c'est frustrant . Je ne peux pas aller contre ma philosophie, je galére et aprés je demande de l'aide, je trouve ca plus formateur, que de te donner les valeurs tout de suite , et que toi en deux coup de cuillére a pot tu fasse la formule .Merci de ne pas faire de "réglage" sur la formule, mais de donner les bonnes infos de mini maxi ! Je te recalculerai les bonnes formules.
Sinon ma boîte auras déjà coulée lolj'espère que tu ne travailles pas dans l'industrie en recherche et développement.
J'avais pensé a quelques chose pour le Gyro , qui allume une led en alternance avec une autre , a base de flag , pour ne pas faire de pause ...... une espèce de rampe de pompier un truc du genre.J'ai cru comprendre que tu avais des trucs qui clignotaient aussi ?
Si tu veux mais ne me demande plus pourquoi ça ne marche pas.Par soucis d'honnêteté, je vais d'abord faire ma formule , Déjà que ça m'énerve de ne pas saisir le truc de la mise a l'échelle .
'##### Commande direction #####
Select case b3
case < 120
b3 = b3*3/8
b3 = 195 - b3
case > 130
b3 = b3*4/10
b3 = 202 - b3
else
b3=150
end select
servopos 1,b3
'##### Commande direction #####
Select case b3
case < 120
b3 = b3*3/8
b3 = 195 - b3
case > 130
b3 = b3-130*4/10
b3 = 150- b3
else
b3=150
end select
servopos 1,b3
elect case b3
case < 120
b3 = b3*3/8
b3 = 195 - b3
case > 134
b3 = b3-134*4/10
b3 = 150 - b3
else
b3=150
end select
servopos 1,b3
#PICAXE 28X2
'######################## Configuration ########################
Symbol moteur = B.0
Symbol sens = C.6
Symbol Direction = B.1
Symbol Pan = B.2
Symbol Tilt = B.3
Symbol Sirene = B.5
Symbol Secu = PinC.7
Symbol Gyro = A.0
Symbol Option = A.2
dirsA = %0101 'declare les broches A.0 et A.2 en sortie
dirsB = %00101111 'declare les broches B.0, B.1, B.2, B.3, et B.5 en sortie
dirsC = %01000000 'declare La broche C.7 en entrée
'######################## Initialisation ########################
setfreq m8
hi2csetup i2cslave, %10100000 ' Met le 28X2 en Esclave
servo B.1,150 'Servo direction en broche B.1, position neutre a 150, MAJ 20ms
'####################################################################################################
' Programme Principal
'####################################################################################################
do
get 0,b0
get 1,b1
get 2,b2
get 3,b3
get 4,b4
get 5,b5
'##### Commande TOR #####
If bit4 = 1 then
high GYRO
else
low gyro
end if
'##### Commande direction #####
Select case b3
case < 120
b3 = b3*3/8
b3 = 195 - b3
case > 130
b3 = b3*4/10
b3 = 202 - b3
else
b3=150
end select
servopos 1,b3
loop
Ah non !mets toi à l'aéromodélisme ...
'##### Commande direction #####
Select case b3
case < 120
b3 = b3*3/8
b3 = 195 - b3
case > 134
b3 = b3-134*5/12
b3 = 150- b3
else
b3=150
end select
servopos 1,b3