On 05/09/18 14:05, Chip Wachob wrote:
> # module AdafruitInit.py
> # from the Adafruit tutorials..
> import Adafruit_GPIO.FT232H as FT232H
> import Adafruit_GPIO as GPIO
>
> FT232H.use_FT232H()
>
> ft232h = FT232H.FT232H()
>
> # config settings for the SPI 'machine'
> spi = FT232.SPI(ft232h, 4, 20000, 2, FT232H.MSBFIRST)
>

That last line created a new variable inside the AdafruitInit module.
It is not visible anywhere else.

> # module RSI.py
> import AdafruitInit
>
> def write(byte):
>    spi.write(byte)

You use spi but it is not visible. It is inside AdafriuitInit
so you need to prefix the name (I'd suggest importing
as an alias!)

       AdafruitInit.spi.write(byte)

> # toggle the latch signal
>    ft232h.output(5, GPIO.LOW)
>    ft232h.output(5, GPIO.HIGH)

And the same here. ft232h is a variable inside AdafriotInit,
so you must prefix it.

BUT GPIO is defined in some other module which
you will also need to import that....

import Adafruit_GPIO as GPIO

adafruitInit.ft232h.output(5, GPIO.LOW)


Any name that you try to use must be
- defined in this module or
- imported or
- prefixed with the name of a module that you imported.

If you do not define it in this module you must import
or prefix.


> ---------------module separator ------------------------
>
> # module main.py
> import RSI
> import AdafruitInit
>
> ft232h.setup(5, GPIO.OUT)
>
> write(0xAA)

Again you need to use the prefixes (and import GPIO)

AdafruitInit.ft232h.setup(...)
RSI.write(...)

> The actual error message for the ft232h... line is:
>
> NameError: global name 'ft232h' is not defined

Please send the full error text, they contain a lot of useful
information. In this case the summary line is enough but in
future we really need the full text.

The name error is because your main module cannpt see
ft232h defined anywhere - it is inside the other module.

So, my write line should have read?
> RSI.write(0xAA)
>
> Does this mean that I need to call the ft232h like this?
>
> AdafruitInit.ft232h.setup(5, GPIO.OUT)

Exactly. And import GPIO too.

> Earlier in the thread you mentioned that there are several ways to
> import.  Obviously there's small differences between the methods.  If
> you know of a good resource I can use to get a better understanding /

Since you know C already you should probably just read the official
tutorial.
It covers all the different styles.

The only guidance i'll add is to avoid the

from foo import *

style since it easily leads to hard to spot name collisions.
Only use it for experiments in the >>> prompt.


-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to