• 締切済み

picマイコンのプログラムについて

上位4bitと下位4bitを取り出してそれぞれを足して出力するプログラム #include<pic.h> void main(){ int x,y,z; TRISA=0x00; TRISB=0xFF; for(;;){ x=(0b11110000 & PORTB)>>4; y=(0b00001111 & PORTB)>>0; z=x+y; PORTA=z; } } pulseを読み取り、カウントするプログラム portaの第0bitからpulseを読み込んで信号が変化したとき、数を数えて、現在のカウントをportbに出力する #include <pic.h> main() { unsigned char before,after; TRISA=0xFF; TRISB=0x00; before=PORTA&1; PORTB=0; for(;;) { after=(PORTA &8)>>3; if(before==0&&after==1) { PORTB=1; } else { PORTB=0; } before=after; } } どのように変更・付け加えをしたらいいでしょうか?どなたかわかる方はお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> portaの第0bitからpulseを読み込んで信号 という条件が同じはずなのに before=PORTA&1; ... after=(PORTA &8)>>3; と違うのはなぜでしょう? > 数を数えて とあるのに PORTB=1; ... PORTB=0; と1か0しか出力しないのは何故でしょう?

noname#182209
質問者

補足

どのように訂正したらいいですか? countをどのように加えたらいいですか?

関連するQ&A